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