c如何讀取usb設備pid
Ⅰ 用電腦如何查看USB設備的供應商ID(VID)與產品識別碼(PID)
查看方法:
打開設備管理器,右鍵設備--屬性--詳細信息--設備範例id。
根據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設備的過程中需要注意。
Ⅱ USB設備已裝驅動,且知道其VID,PID,VC該怎麼編程實現數據傳送
看看具體是什麼USB類的設備,通過MDK,DDK或SDK中的設備管理器族函數枚舉設備的VID和PID,尋找到vid和pid就可版以通過相關函權數得到這個設備的符號名,然後通過相關函數比如openfile得到設備文件的讀寫句柄來通過驅動定義的函數或readfile和writefie來讀寫數據
你的採納是我前進的動力!
記得好評和採納,答題不易,互相幫助,
手機提問的朋友在客戶端右上角評價點滿意即可.
如果你認可我的回答,請及時點擊採納為滿意回答按鈕
Ⅲ 如何使用WMI讀取USB設備的PID和VID碼
WMI(Windows??Management Instrumentation ) 非常強大,它可以以資料庫的形式查詢你的電腦的軟體和硬體,在它的資料庫裡面,時刻保存著最新的軟體信息和硬體信息,因此你可以用WMI來檢測CUP 主頻、溫度,讀取WINDOWS的進程......... 1. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 2. 3. Dialogs, StdCtrls, ExtCtrls,ActiveX, ComObj; 4. 5. 6. 7. procere TForm1.Button2Click(Sender: TObject); 8. 9. var 10. 11. Locator: OleVariant; 12. 13. WMI: OleVariant; 14. 15. RET: OleVariant; 16. 17. Enum: IEnumVariant; 18. 19. Tmp: OleVariant; 20. 21. Value: Cardinal; 22. 23. begin; 24. 25. Locator := CreateOleObject('WbemScripting.SWbemLocator'); 26. 27. WMI := Locator.ConnectServer('.', '', '', ''); 28. 29. Ret := WMI.ExecQuery('SELECT * FROM Win32_USBHub');//這里Win32_USBHub為檢測項,詳見下表 30. 31. 32. 33. Enum:= IUnknown(RET._NewEnum) as IEnumVariant; 34. 35. while (Enum.Next(1, Tmp, Value) = S_OK) do 36. 37. begin 38. 39. if Tmp.Name='USB Mass Storage Device' then 40. 41. ShowMessage('這個u盤的硬體特徵碼是'+Tmp.PNPDeviceID);//Tmp為檢測到返回的數據集合,其中PNPDeviceID為集合中的對象,包含了PID和VID碼 42. 43. end; 44. 45. 46. 47. end; 48. 49. 50. 51. Win32_USBHub只是冰山一角,常用的還有以下 52. 53. 54. 55. "Win32_1394Controller" , 56. 57. "Win32_BaseBoard" , 58. 59. "Win32_Battery" , 60. 61. "Win32_BIOS" , 62. 63. "Win32_Bus" , 64. 65. "Win32_CacheMemory" , 66. 67. "Win32_CDROMDrive" , 68. 69. "Win32_CurrentProbe" , 70. 71. "Win32_DesktopMonitor" , 72. 73. "Win32_DeviceMemoryAddress" , 74. 75. "Win32_DiskDrive" , 76. 77. "Win32_DisplayConfiguration" , 78. 79. "Win32_", 80. 81. "Win32_DMAChannel" , 82. 83. "Win32_Fan" , 84. 85. "Win32_FloppyController" , 86. 87. "Win32_FloppyDrive" , 88. 89. "Win32_HeatPipe" , 90. 91. "Win32_IDEController" , 92. 93. "Win32_InfraredDevice" , 94. 95. "Win32_IRQResource" , 96. 97. "Win32_Keyboard" , 98. 99. "Win32_MemoryArray" , 100. 101. "Win32_MemoryDevice" , 102. 103. "Win32_MotherboardDevice" , 104. 105. "Win32_NetworkAdapter" , 106. 107. "Win32_NetworkAdapterConfiguration" , 108. 109. "Win32_OnBoardDevice" , 110. 111. "Win32_ParallelPort" , 112. 113. "Win32_PCMCIAController" , 114. 115. "Win32_PhysicalMemory" , 116. 117. "Win32_PhysicalMemoryArray" , 118. 119. "Win32_PnPEntity" , 120. 121. "Win32_PointingDevice" , 122. 123. "Win32_PortableBattery" , 124. 125. "Win32_PortConnector" , 126. 127. "Win32_PortResource" , 128. 129. "Win32_POTSModem" , 130. 131. "Win32_PowerManagementEvent" , 132. 133. "Win32_Printer" , 134. 135. "Win32_PrinterConfiguration" , 136. 137. "Win32_PrintJob" , 138. 139. "Win32_Processor" , 140. 141. "Win32_Refrigeration" , 142. 143. "Win32_SerialPort" , 144. 145. "Win32_SerialPortConfiguration" , 146. 147. "Win32_SMBIOSMemory" , 148. 149. "Win32_SoundDevice" , 150. 151. "Win32_SystemEnclosure" , 152. 153. "Win32_SystemMemoryResource" , 154. 155. "Win32_SystemSlot" , 156. 157. "Win32_TapeDrive" , 158. 159. "Win32_TemperatureProbe" , 160. 161. "Win32_UninterruptiblePowerSupply" , 162. 163. "Win32_USBController" , 164. 165. "Win32_VideoConfiguration" , 166. 167. "Win32_VideoController" , 168. 169. "Win32_VoltageProbe"
Ⅳ 怎麼查看U盤的PID和VID信息
優盤來的PID和VID都是優盤的硬體源信息。
要查看優盤的硬體信息,很多專業的硬體監測工具都可以看到。
簡單的如Mydisktest,Chip Genius,專業的如Aida64,都可以檢測並顯示詳細的優盤硬體信息。
Ⅳ USB\VID_04F2&PID_B48C&MI_00這個驅動在官網里找不到
尊敬的華碩用戶,您好!
根據您的描述,抱歉,不確定您的筆記本具體機型及使用的系統版本?
1、目前新機型攝像頭驅動都是windows系統自帶集成的,不需要單獨安裝攝像頭驅動。
先按組合鍵 Fn+V 開啟攝像頭,然後打開QQ或Lifeframe視頻軟體。
2、早期上市筆記本需要安裝攝像頭驅動,根據硬體ID在官網查詢下載,
【設備管理器】-----圖像設備----USB 2.0 camera----右鍵點擊----屬性----詳細信息------硬體ID,查看一下PID代碼是多少?然後在官網以下頁面根據PID代碼下載對應的攝像頭驅動程序安裝:
http://www.asus.com.cn/supportonly/Camera/HelpDesk_download;
(打開此頁面,點select os選擇對應系統版本,然後查找相關PID代碼的驅動,下載保存的攝像頭驅動程序先解壓縮文件,點PNPinst.exe文件安裝)
希望以上信息能夠對您有所幫助,謝謝。若以上回復還是沒有幫您解決您的問題,歡迎您繼續追問,您也可以登錄華碩在線即時服務:http://www.asus.com.cn/support/進一步向工程師咨詢,感謝您對華碩的支持和關注,祝您生活愉快!
Ⅵ 知道U盤盤符後怎麼獲取U盤的信息,如PID,VID那些信息
確定將U盤插入電腦,右擊「計算機」圖標,從彈出的右鍵菜單中選擇「管理」項。專
接著在打屬開的「計算機管理」界面中,展開「設備管理器」項,找到U盤標識符,右擊選擇「屬性」項。
在打開的「設備屬性」窗口中,切換到「詳細信息」選項卡,點擊「屬性」下拉列表,從中選擇「硬體ID」項,此時就可以查看當前U盤的PID和VID信息啦。
當然如果以上方法無法正常獲取設備的相關ID信息,我們可以通過「大勢至USB監控軟體」來獲取U盤PID和VID信息。直接在網路中搜索以上關鍵詞來獲取相關軟體。
安裝並運行該程序後,同時按「Ctrl+Alt+U」打開登陸界面。輸入默認的登陸密碼進行登陸操作。
在程序界面中,點擊「添加特定U盤」按鈕,此時將會打開界面,用於選擇特定的U盤。
在打開的新界面中,就可以看到已插入電腦的U盤相關PID和VID信息啦。
Ⅶ vc++如何獲取usb介面個數
vc++如何獲取usb介面個數:
#include<windows.h>
#include<stdio.h>
#include<Shlwapi.h>
#include<conio.h>
extern"C"{
//DeclaretheClibrariesused
#include<setupapi.h>//Mustlinkinsetupapi.lib
#include<hidsdi.h>//Mustlinkinhid.lib
}
static/*const*/GUIDGUID_DEVINTERFACE_USB_DEVICE=
{0xA5DCBF10L,0x6530,0x11D2,{0x90,0x1F,0x00,0xC0,0x4F,0xB9,0x51,0xED}};
TCHAR*GetErrString(TCHAR*str,DWORDerrcode)
{
LPVOIDlpbuf;
if(FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER|
FORMAT_MESSAGE_FROM_SYSTEM|
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
errcode,
MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),
(LPTSTR)&lpbuf,
0,
NULL
))
{
lstrcpy(str,(LPCWSTR)lpbuf);
LocalFree(lpbuf);
}
returnstr;
}
intmain(intargc,char*argv[])
{
charszTraceBuf[256];
//
HDEVINFOhDevInfo=SetupDiGetClassDevs(
&GUID_DEVINTERFACE_USB_DEVICE,/*CONSTGUID*ClassGuid-USBclassGUID*/
NULL,/*PCTSTREnumerator*/
NULL,/*HWNDhwndParent*/
DIGCF_PRESENT|DIGCF_DEVICEINTERFACE/*DWORDFlags*/
);
if(hDevInfo==INVALID_HANDLE_VALUE)
{
sprintf(szTraceBuf,"SetupDiClassDevs()failed.GetLastError()"
"returns:0x%x ",GetLastError());
OutputDebugStringA(szTraceBuf);
return1;
}
sprintf(szTraceBuf,""
"system:0x%x ",hDevInfo);
OutputDebugStringA(szTraceBuf);
//
//informationset.
DWORDdwIndex=0;
SP_DEVICE_INTERFACE_DATAdevInterfaceData;
ZeroMemory(&devInterfaceData,sizeof(SP_DEVICE_INTERFACE_DATA));
devInterfaceData.cbSize=sizeof(SP_DEVICE_INTERFACE_DATA);
BOOLbRet=FALSE;
ULONGneededLength,requiredLength;
PSP_DEVICE_INTERFACE_DETAIL_DATAClassDeviceData;
HIDD_ATTRIBUTESattributes;
while(TRUE)
{
bRet=SetupDiEnumDeviceInterfaces(
hDevInfo,/*HDEVINFODeviceInfoSet*/
NULL,/*PSP_DEVINFO_DATADeviceInfoData*/
&GUID_DEVINTERFACE_USB_DEVICE,/*CONSTGUID*InterfaceClassGuid*/
dwIndex,
&devInterfaceData/*PSP_DEVICE_INTERFACE_DATADeviceInterfaceData*/
);
if(!bRet)
{
TCHARbuffer[1024];
TCHARszTraceBuf[1024];
GetErrString(buffer,GetLastError());
wsprintf(szTraceBuf,L":%s",buffer);
OutputDebugStringW(szTraceBuf);
if(GetLastError()==ERROR_NO_MORE_ITEMS)
{
break;
}
}else{
//發現一個HID設備,獲取設備的詳細信息
//第一次調用得到ClassDeviceData的大小,但返回錯誤
(hDevInfo,&devInterfaceData,
NULL,0,&requiredLength,NULL);
neededLength=requiredLength;
ClassDeviceData=(PSP_DEVICE_INTERFACE_DETAIL_DATA)malloc(neededLength);
ClassDeviceData->cbSize=sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
//第二次調用
//使用合適的neededLength.
if(!(hDevInfo,&devInterfaceData,
ClassDeviceData,neededLength,&requiredLength,NULL))
{
free(ClassDeviceData);
SetupDiDestroyDeviceInfoList(hDevInfo);
return-1;
}
//建立HID設備的句柄
HANDLEhandle=CreateFile(ClassDeviceData->DevicePath,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,OPEN_EXISTING,0,NULL);
//獲取attributes以便得到VendorID和ProctID
HidD_GetAttributes(handle,&attributes);
TCHARbuffer[1024];
wsprintf(buffer,L"name:%spid=%dvid=%dversion=%d ",ClassDeviceData->DevicePath,attributes.ProctID,attributes.VendorID,attributes.VersionNumber);
OutputDebugStringW(buffer);
CloseHandle(handle);
free(ClassDeviceData);
}
dwIndex++;
}
sprintf(szTraceBuf,""
"devicesattachedtosystem:%d ",dwIndex);
OutputDebugStringA(szTraceBuf);
SetupDiDestroyDeviceInfoList(hDevInfo);
getch();
return0;
}
Ⅷ 如何使用WMI讀取USB設備的PID和VID碼
打開設備管理器,右鍵USB設備--屬性--詳細信息--設備範例id
Ⅸ 一個新插入的USB設備,用VC++怎麼獲取這個設備的所有信息並保存比如VID和PID以及Endpoint等待。
所有設備都在設備分類的Usb分支下,你可以遍歷查找,也可以到注冊表中找
特定設備的vidpid是設備指定的,看一下技術文檔即可