21,600
社区成员
发帖
与我相关
我的任务
分享
\\?\USB#Vid_aaaaVid_bbbb#5&3b6b37ee&0&2#{a5ddbf11-6666-1123-9999-000000000000}
\\?\USB#Vid_aaaaVid_bbbb //USB VID&PID
#5&3b6b37ee&0&2# //一般情况下,系统随机生成的。如果USB设备有Serial Number,那么这里头可能包含Serial Number
{a5ddbf11-6666-1123-9999-000000000000} //可能是Device类别
[/quote]
虽然感觉#5&3b6b37ee&0&2# //一般情况下,系统随机生成的。如果USB设备有Serial Number,那么这里头可能包含Serial Number这个解释不太赞同,但是还是很佩服您的能力
通过我看了usbview代码,我看里边重要的控制码来源于usbioctl。h,而这个头文件是wdk中的。我现在写的是Qt程序,莫非也要装WDK?
\\?\USB#Vid_aaaaVid_bbbb#5&3b6b37ee&0&2#{a5ddbf11-6666-1123-9999-000000000000}
\\?\USB#Vid_aaaaVid_bbbb //USB VID&PID
#5&3b6b37ee&0&2# //一般情况下,系统随机生成的。如果USB设备有Serial Number,那么这里头可能包含Serial Number
{a5ddbf11-6666-1123-9999-000000000000} //可能是Device类别
./enum.c-694- //
./enum.c-695- // Now query USBHUB for the USB_NODE_INFORMATION structure for this hub.
./enum.c-696- // This will tell us the number of downstream ports to enumerate, among
./enum.c-697- // other things.
./enum.c-698- //
./enum.c-699- success = DeviceIoControl(hHubDevice,
./enum.c-700- IOCTL_USB_GET_NODE_INFORMATION,
./enum.c-701- hubInfo,
./enum.c-702- sizeof(USB_NODE_INFORMATION),
./enum.c-703- hubInfo,
./enum.c-704- sizeof(USB_NODE_INFORMATION),
./enum.c-705- &nBytes,
./enum.c-706- NULL);
./enum.c-707-
./enum.c-708- if (!success)
./enum.c-709- {
./enum.c-710- OOPS();
./enum.c-711- goto EnumerateHubError;
./enum.c-712- }
./enum.c-713-
./enum.c-714-
./enum.c-715- // Build the leaf name from the port number and the device description
./enum.c-716- //
./enum.c-717- if (ConnectionInfo)
./enum.c-718- {
./enum.c:719: _stprintf_s(leafName, sizeof(leafName)/sizeof(leafName[0]), _T("[Port%d] "), ConnectionInfo->ConnectionIndex);
./enum.c-720- _tcscat_s(leafName, sizeof(leafName)/sizeof(leafName[0]), ConnectionStatuses[ConnectionInfo->ConnectionStatus]);
./enum.c-721- _tcscat_s(leafName, sizeof(leafName)/sizeof(leafName[0]), _T(" : "));
./enum.c-722-
./enum.c-723- ((PUSBEXTERNALHUBINFO)info)->HubCaps = hubCaps;
./enum.c-724- ((PUSBEXTERNALHUBINFO)info)->HubCapsEx = hubCapsEx;
./enum.c-725- }
设备名的生成规则是操作系统定义的。不同的操作系统有可能不一样。所以,根据设备名来获取设备相关信息的做法是不保险的。