USB裝置驅動載入過程

2021-06-23 09:40:29 字數 747 閱讀 9254

本文摘自:

使用者插入usb裝置

usb匯流排(或者是pci匯流排,這個不太清楚,反正就是匯流排來著)識別到插入了usb裝置。

匯流排和usb裝置進行通訊,獲取usb的硬體id、產品id,以及bcdversion。根據這些資訊組成裝置硬體id號:vid_***x&pid_***x&rev_***x。

匯流排根據usb裝置的插槽位置,生成乙個例項id,此id只和插槽對映,同一裝置在不同插槽,會生成不同的例項id;同一裝置在同一插槽,例項id不會改動(不同裝置,同一插槽會怎麼樣就不知道了,知道的請告訴下)。

如下圖所示,裝置例項路徑中包含了3部分的內容,每部分用"\"分離,

根據匯流排得到的資訊,系統在登錄檔」hkey_local_machine\system\currentcontrolset\enum「下尋找驅動程式。對於上面的裝置,驅動程式資訊在登錄檔路徑為:「hkey_local_machine\system\currentcontrolset\enum\usb\vid_1bcf&pid_0501\6&10354432&0&8」,如果找不到此路徑,就安裝驅動程式吧。路徑內容如下所示:

根據上面登錄檔的資訊,找到service鍵和class鍵的值。

上面就是usb驅動裝置載入的基本流程了,也是pnp裝置載入的基本流程。

對於相容id,多介面裝置的概念和相關驅動載入,這裡就不繼續講述了,有興趣的可以看

USB裝置驅動程式載入流程

使用者插入usb裝置 usb匯流排 或者是pci匯流排,這個不太清楚,反正就是匯流排來著 識別到插入了usb裝置。匯流排和usb裝置進行通訊,獲取usb的硬體id 產品id,以及bcdversion。根據這些資訊組成裝置硬體id號 vid x pid x rev x。匯流排根據usb裝置的插槽位置,...

USB裝置驅動

1.linux usb架構 usb通訊都是由host端發起的。usb裝置驅動程式分配並初始化乙個urb發給usb core,usb core改一改,發給usb主機控制器驅動,usb主機控制器驅動把它解析成包,在匯流排上進行傳送。usb core是由核心實現的,其實也就是把host control d...

USB裝置驅動

把usb裝置接到pc 右下角彈出 發現android phone 跳出乙個對話方塊,提示你安裝驅動程式 問1.既然還沒有 驅動程式 為何能知道是 android phone 答1.windows裡已經有了usb的匯流排驅動程式,接入usb裝置後,是 匯流排驅動程式 知道你是 android phon...