USB设备路径是什么,是什么格式的?
原始博文鏈接地址:https://www.silabs.com/community/interface/knowledge-base.entry.html/2013/11/21/windows_usb_devicep-aGxD
現整理翻譯如下,但鼓勵還是看原文好,因為我的英語也很菜o(╥﹏╥)o
What is a Windows USB device path and how is it formatted?
Windows操作系統通過一個“設備路徑”來唯一“標識”接入系統中的USB設備/接口。該“設備路徑”常常通過使用win32 的API函數 CreatFile()來與USB設備建立通信。
?
USB Device Path Format
大多數情況下,windows中USB設備路徑的格式如下:
\?usb#vid_vvvv&pid_pppp#ssss#{gggggggg-gggg-gggg-gggg-gggggggggggg}
其中:
vvvv是USB廠商ID,由4個十六進制的字符構成。
pppp是USB的產品ID,由4個十六進制的字符構成。
ssss是USB序列號,由n個 字符構成。
gggggggg-gggg-gggg-gggg-gggggggggggg?是設備接口GUID,GUID用于設備對應驅動連接設備應用時使用。GUID通常被指派到驅動或者驅動文件INF中,被應用程序加載相應的設備驅動。
?
Composite USB Device Path Format For Interfaces
具有多個接口的USB設備的設備路徑格式:
\?usb#vid_vvvv&pid_pppp&mi_ii#aaaaaaaaaaaaaaaa#{gggggggg-gggg-gggg-gggg-gggggggggggg}
vvvv是USB廠商ID,由4個十六進制的字符構成。
pppp是USB的產品ID,由4個十六進制的字符構成。
ii是USB接口號。
aaaaaaaaaaaaaaaa是唯一的,由windows基于類似USB物理端口地址或者接口號來生成的字符。
gggggggg-gggg-gggg-gggg-gggggggggggg?是設備接口GUID,GUID用于設備加載驅動時使用。
?
?
Unique Device Paths
Windows要求每個USB設備和接口的設備路徑都是唯一的。如果兩個同時插到機器上的USB設備具有相同的VID/PID/序列號,那么前面描述的USB設備路徑格式便無法為這兩個設備生成一個唯一的設備路徑進行區分。此時,windows將會按照“復合USB設備路徑格式”描述的方式來進行生成,當未設置設備序列號時也將使用這種方式進行生成。
?
Registry Keys Using Device Path Information
The device path is useful for locating the USB device registry keys, where additional settings and information are stored for the device instance. USB device registry keys are stored in the following location:
設備路徑可以用來定位USB設備的注冊表中的鍵值,該鍵值用來存儲與設備有關的設置和信息,USB設備注冊鍵值存儲在如下位置:
[HKLM/SYSTEM/CurrentControlSet/Enum/ ??USBVID_vvvv&PID_ppppssss],
Where:
vvvv是USB 廠商ID.
pppp是USB 產品ID.
ssss是USB序列號或?由windows產生的唯一字符
For example, the CP210x VCP drivers stores the COM port number in the Device ParametersPortName registry key as shown in the figure below.
例如,the CP210x VCP驅動存儲著COM端口號碼 由如下圖所示的 設備參數中的 端口名那一欄進行保存。
?
Finding the Device Path Parameters using Device Manager
?
廠商ID/產品ID/序列號或者一個由windows唯一產生的字符可以通過設備管理器進行查看,打開USB設備屬性并點擊詳細信息,并在設備性質那個下拉菜單選項中選擇“設備實例路徑”,本質上是通過使用CreateFile()函數來進行查看的,設備實例路徑與標準的設備路徑格式有輕微不同。
?
?
總結
以上是生活随笔為你收集整理的USB设备路径是什么,是什么格式的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue+Django REST fram
- 下一篇: LIS2MDL磁力计驱动