【问题标题】:How do I mapping usb storage device path to physicaldrive?如何将 USB 存储设备路径映射到物理驱动器?
【发布时间】:2019-01-03 07:41:54
【问题描述】:

我从

获取 USB 设备路径
SetupDiGetDeviceInterfaceDetail()

我可以得到类似的设备路径

\\?\usbstor#disk&ven_&prod_2307_pram&......

但我想将设备路径映射到物理驱动器

->  \\physicaldrive0,1,2......

或者相反,我可以将物理驱动映射到设备路径
有什么办法吗?

【问题讨论】:

    标签: c++ windows usb driver


    【解决方案1】:

    哦,我找到了。 将 HANDLE 放入 DeviceIoControl 并使用 IOCTL_STORAGE_GET_DEVICE_NUMBER

    STORAGE_DEVICE_NUMBER number;   //use this to get disk numbers
    DWORD readed;                   // discard results
    BOOL result = DeviceIoControl(
        hdl,                // handle to device
        IOCTL_STORAGE_GET_DEVICE_NUMBER, // dwIoControlCode
        NULL,                            // lpInBuffer
        0,                               // nInBufferSize
        &number,           // output buffer
        sizeof(number),         // size of output buffer
        &readed,       // number of bytes returned
        NULL      // OVERLAPPED structure
    );
    

    number.DeviceNumber 是 PhysicalDrive 编号

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      • 2012-07-21
      相关资源
      最近更新 更多