一、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設備的過程中需要注意。
二、常用設備VID和PID
1.攝像頭VID和PID
- {USB_DEVICE (0x0733, 0x0430)}, /* Intel PC Camera Pro */
- {USB_DEVICE (0x0733, 0x0401)}, /* Intel Create and Share */
- {USB_DEVICE (0x99FA, 0x8988)}, /* Grandtec V.cap */
- {USB_DEVICE (0x0733, 0x0402)}, /* ViewQuest M318B */
- {USB_DEVICE (0x0733, 0x0110)}, /* ViewQuest VQ110 */
- {USB_DEVICE (0x040A, 0x0002)}, /* Kodak DVC-325 */
- {USB_DEVICE (0x055f, 0xc420)}, /* Mustek gSmart Mini 2 */
- {USB_DEVICE (0x055f, 0xc520)}, /* Mustek gSmart Mini 3 */
- {USB_DEVICE (0x041E, 0x400A)}, /* Creative PC-CAM 300 */
- {USB_DEVICE (0x084D, 0x0003)}, /* D-Link DSC-350 */
- {USB_DEVICE (0x041E, 0x400B)}, /* Creative PC-CAM 600 */
- {USB_DEVICE (0x8086, 0x0630)}, /* Intel Pocket PC Camera */
- {USB_DEVICE (0x8086, 0x0110)}, /* Intel Easy PC Camera */
- {USB_DEVICE (0x0506, 0x00df)}, /* 3Com HomeConnect Lite */
- {USB_DEVICE (0x040a, 0x0300)}, /* Kodak EZ200 */
- {USB_DEVICE (0x04fc, 0x504b)}, /* Maxell MaxPocket LE 1.3 */
- {USB_DEVICE (0x08ca, 0x2008)}, /* Aiptek Mini PenCam 2 M */
- {USB_DEVICE (0x08ca, 0x0104)}, /* Aiptek PocketDVII 1.3 */
- {USB_DEVICE (0x08ca, 0x2018)}, /* Aiptek Pencam SD 2M */
- {USB_DEVICE (0x04fc, 0x504a)}, /* Aiptek Mini PenCam 1.3 */
- {USB_DEVICE (0x055f, 0xc530)}, /* Mustek Gsmart LCD 3 */
- {USB_DEVICE (0x055f, 0xc650)}, /* Mustek MDC5500Z */
- {USB_DEVICE (0x052b, 0x1513)}, /* Megapix V4 */
- {USB_DEVICE (0x08ca, 0x0103)}, /* Aiptek PocketDV */
- {USB_DEVICE (0x0af9, 0x0010)}, /* Hama USB Sightcam 100 */
- {USB_DEVICE (0x1776, 0x501c)}, /* Arowana 300K CMOS Camera */
- {USB_DEVICE (0x08ca, 0x0106)}, /* Aiptek Pocket DV3100+ */
- {USB_DEVICE (0x08ca, 0x2010)}, /* Aiptek PocketCam 3M */
- {USB_DEVICE (0x0458, 0x7004)}, /* Genius VideoCAM Express V2 */
- {USB_DEVICE (0x04fc, 0x0561)}, /* Flexcam 100 */
- {USB_DEVICE (0x055f, 0xc430)}, /* Mustek Gsmart LCD 2 */
- {USB_DEVICE (0x04fc, 0xffff)}, /* Pure DigitalDakota */
- {USB_DEVICE (0xabcd, 0xcdee)}, /* Petcam */
- {USB_DEVICE (0x04a5, 0x3008)}, /* Benq DC 1500 */
- {USB_DEVICE (0x046d, 0x0960)}, /* Logitech Inc. ClickSmart 420 */
- {USB_DEVICE (0x046d, 0x0901)}, /* Logitech Inc. ClickSmart 510 */
- {USB_DEVICE (0x04a5, 0x3003)}, /* Benq DC 1300 */
- {USB_DEVICE (0x0af9, 0x0011)}, /* Hama USB Sightcam 100 */
- {USB_DEVICE (0x055f, 0xc440)}, /* Mustek DV 3000 */
- {USB_DEVICE (0x041e, 0x4013)}, /* Creative Pccam750 */
- {USB_DEVICE (0x060b, 0xa001)}, /* Maxell Compact Pc PM3 */
- {USB_DEVICE (0x04a5, 0x300a)}, /* Benq DC3410 */
- {USB_DEVICE (0x04a5, 0x300c)}, /* Benq DC1016 */
- {USB_DEVICE (0x0461, 0x0815)}, /* Micro Innovation IC200 */
- {USB_DEVICE (0x046d, 0x0890)}, /* Logitech QuickCam traveler */
- {USB_DEVICE (0x10fd, 0x7e50)}, /* FlyCam Usb 100 */
- {USB_DEVICE (0x06e1, 0xa190)}, /* ADS Instant VCD */
- {USB_DEVICE (0x055f, 0xc220)}, /* Gsmart Mini */
- {USB_DEVICE (0x0733, 0x2211)}, /* Jenoptik jdc 21 LCD */
- {USB_DEVICE (0x046d, 0x0900)}, /* Logitech Inc. ClickSmart 310 */
- {USB_DEVICE (0x055f, 0xc360)}, /* Mustek DV4000 Mpeg4 */
- {USB_DEVICE (0x08ca, 0x2024)}, /* Aiptek DV3500 Mpeg4 */
- {USB_DEVICE (0x046d, 0x0905)}, /* Logitech ClickSmart820 */
- {USB_DEVICE (0x05da, 0x1018)}, /* Digital Dream Enigma 1.3 */
- {USB_DEVICE (0x0c45, 0x6025)}, /* Xcam Shanga */
- {USB_DEVICE (0x0733, 0x1311)}, /* Digital Dream Epsilon 1.3 */
- {USB_DEVICE (0x041e, 0x401d)}, /* Creative Webcam NX ULTRA */
- {USB_DEVICE (0x08ca, 0x2016)}, /* Aiptek PocketCam 2 Mega */
- {USB_DEVICE (0x0734, 0x043b)}, /* 3DeMon USB Capture aka */
- {USB_DEVICE (0x041E, 0x4018)}, /* Creative Webcam Vista (PD1100) */
- {USB_DEVICE (0x0546, 0x3273)}, /* Polaroid PDC2030*/
- {USB_DEVICE (0x041e, 0x401f)}, /* Creative Webcam Notebook PD1171*/
- {USB_DEVICE (0x041e, 0x4017)}, /* Creative Webcam Mobile PD1090*/
- {USB_DEVICE (0x046d, 0x08a2)}, /* Labtec Webcam Pro*/
- {USB_DEVICE (0x055f, 0xd003)}, /* Mustek WCam300A*/
- {USB_DEVICE (0x0458, 0x7007)}, /* Genius VideoCam V2*/
- {USB_DEVICE (0x0458, 0x700c)}, /* Genius VideoCam V3*/
- {USB_DEVICE (0x0458, 0x700f)}, /* Genius VideoCam Web V2*/
- {USB_DEVICE (0x041e, 0x401e)}, /* Creative Nx Pro*/
- {USB_DEVICE (0x0c45, 0x6029)}, /* spcaCam@150 */
- {USB_DEVICE (0x0c45, 0x6009)}, /* spcaCam@120 */
- {USB_DEVICE (0x0c45, 0x600d)}, /* spcaCam@120 */
- {USB_DEVICE (0x04fc, 0x5330)}, /* Digitrex 2110*/
- {USB_DEVICE (0x055f, 0xc540)}, /* Gsmart D30*/
- {USB_DEVICE (0x0ac8, 0x301b)}, /* Asam Vimicro*/
- {USB_DEVICE (0x041e, 0x403a)}, /* Creative Nx Pro 2*/
- {USB_DEVICE (0x055f, 0xc211)}, /* Kowa Bs888e Microcamera*/
- {USB_DEVICE (0x0ac8, 0x0302)}, /* Z-star Vimicro zc0302*/
- {USB_DEVICE (0x0572, 0x0041)}, /* Creative Notebook cx11646*/
- {USB_DEVICE (0x08ca, 0x2022)}, /* Aiptek Slim 3200*/
- {USB_DEVICE (0x046d, 0x0921)}, /* Labtec Webcam */
- {USB_DEVICE (0x046d, 0x0920)}, /* QC Express */
- {USB_DEVICE (0x0923, 0x010f)}, /* ICM532 cams */
- {USB_DEVICE (0x055f, 0xc200)}, /* Mustek Gsmart 300 */
- {USB_DEVICE (0x0733, 0x2221)}, /* Mercury Digital Pro 3.1p*/
- {USB_DEVICE (0x041e, 0x4036)}, /* Creative Live ! */
- {USB_DEVICE (0x055f, 0xc005)}, /* Mustek Wcam300A */
- {USB_DEVICE (0x041E, 0x403b)}, /* Creative Webcam Vista (VF0010) */
- {USB_DEVICE (0x0545, 0x8333)}, /* Veo Stingray */
- {USB_DEVICE (0x0545, 0x808b)}, /* Veo Stingray */
- {USB_DEVICE (0x10fd, 0x8050)}, /* Typhoon Webshot II USB 300k */
- {USB_DEVICE (0x0000, 0x0000)}, /* MystFromOri Unknow Camera */