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是设备指定的,看一下技术文档即可