gpt4 book ai didi

c++ - 如何获取 DevicePath 的驱动器号

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:32:40 29 4
gpt4 key购买 nike

我正在使用 Win32 API。

我真的不明白如何获取 USB 内存棒的 DevicePath 的驱动器号。

你能给我解释一下吗

(我有的是 SP_DEVICE_INTERFACE_DETAIL_DATA DevicePath

使用这个设备路径我得到 USB 设备的 VID 和 PID

我的设备路径如下所示

“\?\usb#vid_1a8d&pid_1000#358094020874450#{a5dcbf10-6530-11d2-901f-00c04fb951ed}”

有什么方法可以将驱动器号映射到我的设备路径

所以请帮我将盘符映射到 DevicePath )

感谢您的帮助。

最佳答案

link我在您的其他问题中提供的为您提供了执行此操作所需的所有信息。在半伪代码中:

DiskDevice = CreateFile(DiskDevicePath);
DiskDeviceNumber = DeviceIoControl(DiskDevice, IOCTL_STORAGE_GET_DEVICE_NUMBER);
for each VolumeDevicePath in GetLogicalDriveStrings
VolumeDevice = CreateFile(VolumeDevicePath);
VolumeDeviceNumber = DeviceIoControl(VolumeDevice, IOCTL_STORAGE_GET_DEVICE_NUMBER);
if(VolumeDeviceNumber == DiskDeviceNumber)
// volume (i.e. "G:") corresponding to VolumeDevicePath resides on disk (i.e. "XYZ USB Storage Device") corresponding to DiskDevicePath

我不是 100% 确定(已经有一段时间了),但我认为磁盘设备 (GUID_DEVINTERFACE_DISK) 是 USB 设备 (GUID_DEVINTERFACE_USB_DEVICE) 的子设备。无论如何,我认为 DiskDevicePath 需要是磁盘设备(而不是 USB 设备)的路径。

关于c++ - 如何获取 DevicePath 的驱动器号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2995957/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com