如何在Windows上的qt中获取usb设备的厂商ID和pid?

时间:2012-08-07 11:04:11

标签: c++ windows qt winapi usb

我在Windows上使用qt。我的程序需要知道插件usb闪存驱动器的供应商ID和产品ID。

我试图从this topic实施示例,但我在WinUsb_Initialize function上遇到了细分错误。

这是我的代码:

HANDLE hDevice = CreateFileA("\\\\.\\PhysicalDrive1", GENERIC_WRITE | GENERIC_READ ,
     FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);

if(hDevice == INVALID_HANDLE_VALUE)
{
    qDebug() << "hDevice - INVALID_HANDLE_VALUE";
}
else
{
    qDebug() << "hDevice handle ok";
    PWINUSB_INTERFACE_HANDLE phWinUSBHandle;
    BOOL result = false;
    result = WinUsb_Initialize(hDevice, phWinUSBHandle); //seg
}

我需要phWinUSBHandle来使用WinUsb_GetDescriptor功能。

我将非常感谢任何帮助。也许有人知道在Windows中获取供应商ID和产品ID的另一种方法吗?

1 个答案:

答案 0 :(得分:1)

你有没有提到libusb图书馆?它可能会对你有帮助。