日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

虚拟USB设备总结

發布時間:2023/12/8 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 虚拟USB设备总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開發環境:windows

首先來總結最近研究的虛擬USB設備,進而虛擬USB鍵盤成功了,開心!

得出了一個C/S框架,首先說一下客戶端

客戶端有兩個部分,用戶空間工具底層虛擬總線驅動

在本文件中?我們將 它們分別指向 用戶空間工具底層虛擬總線驅動。首先,用戶啟動用戶空間工具來查詢導出的來自服務器的USB 設備 ,如果有可用的設備,他或她可能會決定導入設備。如果入口請求成功, ?用戶空間工具 會向 底層虛擬總線驅動 發送一個 IRP,通知它創建一個物理設備對象 。

它代表 插入客戶端計算機的真實USB 設備。當然,沒有真正的設備附加到客戶端機器,但我們的系統 會在不知情的情況下將其視為真實機器。然后系統將發送許多 IRP 到 我們用于查詢目的的虛擬總線驅動程序, 例如設備能力查詢、設備硬件 ID 查詢等

有些查詢與服務器端的實際設備無關 ,我們的虛擬總線驅動程序會馬上完成它們。但是當用戶訪問遠程 USB 設備上的數據存儲時 ,我們的總線驅動程序會收到 IRP?那些與 URB(USB 請求塊)相關的數據,總線驅動程序不能 立即給她返回所需的數據。

在這種情況下,底層虛擬總線驅動 將查找是否有來自 用戶空間工具的掛起讀取 請求,如果?

(1):

確實有一個待處理的讀取請求;底層虛擬總線驅動將使用 URB 正確地提供讀取任務,IRP 是入隊 并設置為掛起狀態。到這個時候,用戶空間工具的讀操作會成功返回,?然后 用戶空間工具?將根據客戶端和服務器之間的協議將 URB嵌入 到一個包中并發送這個?打包到服務器。用戶空間工具 總是 在一個套接字上等待,當它從服務器接收到一個包時,它會調用?WriteFile() API 將包寫入我們的虛擬 USB 設備。收到寫 IRP 后,底層虛擬總線驅動 得到來自這個寫 IRP 的數據并將適當的數據提供給前一個掛起的 IRP ?,然后那個掛起的 IRP 將成功完成后,它將隨后出隊。 ?

(2):?

沒有掛起的讀請求;IRP 將入隊并設置為掛起狀態。如果來了一段時間后來自 用戶空間工具 的讀取請求,底層虛擬總線驅動 將搜索隊列以獲取尚未發送到服務器的 IRP。當它找到一個時,它將向讀取操作提供信息,從發現的 IRP 開始,所有后續行為都將與上述 (1) 完全相同。

服務端待續更新。。。。

總結

以上是生活随笔為你收集整理的虚拟USB设备总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。