USB設備驅動程序的設計
對象I包含了應用程序下傳的IRP內容,包括命令或數據等參數,函數BuildVendorRequest用來分配并初始化一個用于廠商請求的URB(USB Request Block),該URB將作為下傳IRP的一個參數,通過函數SubmitUrb發送給總線驅動程序,以便完成與硬件的通信。
本文引用地址:http://www.104case.com/article/94605.htm在初始化URB時需要了解USB的傳輸方式及傳輸協議,該功能使用了USB的控制傳輸方式,該方式包括三個階段:設置階段、數據階段和狀態階段,其中數據階段可選,開發者主要關注設置階段中的8個關鍵字節的定義,8字節分成了5個字段,定義了傳輸請求及相關信息,這8個字節的格式如圖3所示。
bmRequestType
bRequest
wValue
wIndex
wLength
圖3 USB設置數據格式
評論