如何在Windows上的Qt中获取USB设备的供应商ID和PID

how to get vendor id and pid of usb device in qt on windows?

本文关键字:供应商 ID PID USB 获取 Windows 上的 Qt      更新时间:2023-10-16

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

我试图实现本主题中的示例,但我在WinUsb_Initialize函数上遇到分段错误。

这是我的代码:

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功能。

我将非常感谢任何帮助。也许有人知道一些在窗口中获取供应商 ID 和产品 ID 的替代方法?

你参考过libusb库吗?它可能会对你有所帮助。