USB設備的VID與PID


 

一、VID和PID
  PID/VID唯一標識一個設備,HardwareID是為了給系統識別的 ,他是根據PID/VID而生成的。這個與序列號沒什么關系,序列號一般都是廠家固化到芯片中的信息而已。GUID只是為了標志你安裝的設備是屬於一個什么類當中,這個類可以顯示再設備管理器中。比如:你可以定義一個類,當然這個類有與系統中任何類都不同的GUID,然后選擇一個圖標和類名,就可以同網卡等其他設備一起顯示在設備管理器下的根目錄中了

  根據USB規范的規定,所有的USB設備都有供應商ID(VID)和產品識別碼(PID),主機通過不同的VID和PID來區別不同的設備,VID和PID都是兩個字節長,其中,供應商ID(VID)由供應商向USB執行論壇申請,每個供應商的VID是唯一的,PID由供應商自行決定,理論上來說,不同的產品、相同產品的不同型號、相同型號的不同設計的產品最好采用不同的PID,以便區別相同廠家的不同設備。

   VID和PID通常情況下有兩種存儲方式,第一種是主控生產商的VID和PID,存儲在主控的bootcode中;第二種是設備生產商的VID和PID,該VID和PID存儲在主控外部的非易失性存儲設備中(EEPROM或Flash)的設備固件中,當USB設備連接主機時,如果固件中有設備生產商的VID和PID,會將該VID和PID報告給主機,而忽略主控生產商的VID和PID。所以理論上一個USB存儲設備的VID應該是設備生產商的VID,而不是主控生產商的VID,這兩個VID應該是不同的(主控生產商自己生產的設備除外)。

   由於VID和PID重復並不會對產品的使用帶來嚴重影響,很多USB設備生產商(山寨廠居多)為了方便,並不會向USB執行論壇申請自己的VID,而是依然沿用主控生產商的VID或隨便向產品寫入VID和PID;同時,正規廠家只需要申請VID,PID由廠家自行確定,所以存在相同型號的產品,可能采用了不同的主控(商業需要,很正常),而他們的PID是一樣的,基於上述原因通過VID和PID就不能准確識別USB設備的主控型號,這個問題大家在使用USB設備的過程中需要注意。

如:

  1. {USB_DEVICE (0x0733, 0x0430)}, /* Intel PC Camera Pro */   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM