驱动器号到设备实例ID

Ste*_*S48 3 windows device hardware-interface device-instance-id

如何从驱动器号获取设备实例ID?

我的过程从设备到达消息开始。我已经成功地从到达消息中获取了驱动器号并打开了DVD托盘。

我搜索了各种Setup API项目;但是我还没有发现任何让我从驱动器号到设备实例ID的东西。

使用C#或VB.NET的解决方案将是理想的,但是只要我能看到API调用,我愿意从任何其他语言中找出解决方案。

提前致谢...

Dan*_*Dan 5

您不能直接这样做。

链接是使用STORAGE_DEVICE_NUMBER。您可以IOCTL_STORAGE_GET_DEVICE_NUMBER在设备名称上使用DeviceIoControl 来填充此结构。将此值放在一边。
然后,您需要通过SetupDiGetClassDevs将GUIDS设置为适当的来指示系统上的设备信息,以指示您已插入的驱动器。然后使用枚举设备SetupDiEnumDeviceInfo。然后使用枚举接口SetupDiEnumDeviceInterfaces,最后使用获得信息SetupDiGetDeviceInterfaceDetail。在返回的此结构中,您可以获得一个DevicePath,您可以使用它来获取STORAGE_DEVICE_NUMBER上述内容。将其与STORAGE_DEVICE_NUMBER驱动器号中的匹配,现在您已将驱动器号链接到您的结构。!在此结构内部是一个DevInst。