小编Sre*_*dni的帖子

从 USB VID/PID 中查找可移动磁盘的 Windows 驱动器号

这个问题之前已经问过,并且有一个据说可以在这里工作的答案。但我已经试过了,它对我不起作用。

问题在于 Win32_DiskDrive 上的查询返回的 PNPDeviceID 与“设备”类返回的 PNPDeviceID 不同。例如,在我的情况下,查询返回类似 - PNPDeviceID: USBSTOR\DISK&VEN_ABCD&PROD_1234&REV_0001\8&2C3C9390&0而设备类返回实际的 VID/PID 组合 --> USB\VID_4568&PID_QWER&MI_08\7&100d .

所以 Win32_DiskDrive 上的 SELECT 查询总是失败。

主要代码:

    var usbDevices = GetUSBDevices();

    //Enumerate the USB devices to see if any have specific VID/PID
    foreach (var usbDevice in usbDevices)
    {
        if (usbDevice.DeviceID.Contains("ABCD") && usbDevice.DeviceID.Contains("1234"))
        {
            foreach (string name in usbDevice.GetDiskNames())
            {
                //Open dialog to show file names
                Debug.WriteLine(name);
            }
        }                   
    }
Run Code Online (Sandbox Code Playgroud)

USBDeviceInfo 类

class USBDeviceInfo
{
    public USBDeviceInfo(string deviceID, string pnpDeviceID, string description)
    { …
Run Code Online (Sandbox Code Playgroud)

.net c#

2
推荐指数
1
解决办法
8218
查看次数

标签 统计

.net ×1

c# ×1