如何获取USB设备的接口GUID
本文关键字:接口 GUID USB 何获取 获取 | 更新日期: 2023-09-27 17:56:05
我试过这段代码,但它只检索"ClassGuid"。有没有办法获取 USB 设备的接口指导?
private void loadUsbDevices()
{
using (var searcher = new ManagementObjectSearcher(
@"SELECT * FROM Win32_PnPEntity WHERE DeviceID LIKE 'USB%'"))
{
ManagementObjectCollection collection = searcher.Get();
foreach (var device in collection)
{
Console.WriteLine(((string) device.GetPropertyValue("Name")) + " ("
+ ((string) device.GetPropertyValue("ClassGuid")) + ") "
+ ((string)device.GetPropertyValue("DeviceID")));
}
}
}
由于你的设备使用 WinUSB 作为驱动程序,你可能已经安排在该设备的注册表中插入名为 DeviceInterfaceGUID 的注册表值。 您可以使用 SetupDiOpenDevRegKey
和 RegQueryValueExW
检索相同的值。 有关执行此操作的一些示例代码,请参阅来自 libusbp 的以下代码:
https://github.com/pololu/libusbp/blob/890379c54ef58de46afc60b9c3eccfe2bd66d523/src/windows/generic_interface_windows.c#L93
你也可以在libusb的源代码中找到类似的代码。