如何获取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")));
        }
    }
}

如何获取USB设备的接口GUID

由于你的设备使用 WinUSB 作为驱动程序,你可能已经安排在该设备的注册表中插入名为 DeviceInterfaceGUID 的注册表值。 您可以使用 SetupDiOpenDevRegKeyRegQueryValueExW 检索相同的值。 有关执行此操作的一些示例代码,请参阅来自 libusbp 的以下代码:

https://github.com/pololu/libusbp/blob/890379c54ef58de46afc60b9c3eccfe2bd66d523/src/windows/generic_interface_windows.c#L93

你也可以在libusb的源代码中找到类似的代码。