相关疑难解决方法(0)

以编程方式区分Windows中的USB软盘驱动器和USB闪存驱动器

在Windows(XP-7)上,是否有一种可靠的方式在C++中以编程方式区分USB软盘驱动器和USB闪存驱动器?

目前,我正在使用WMI Win32_LogicalDisk在检测到新实例时获取更新,然后使用LogicalDisk对象的DriveType属性来确定基本类型.这很好用,除了软盘驱动器和USB闪存驱动器都是DriveType DRIVE_REMOVABLE,所以为了区分它们(软盘和闪存),我正在使用IOCTL_STORAGE_GET_HOTPLUG_INFO界面来确定设备是否可以热插拔,并且正在研究校长认为这是一个闪存驱动器,而不是软盘.再说一遍,我认为在内置软盘驱动器的情况下,这种方法效果很好(如果使用WDK API和WMI来获取信息的效率有点低),但遗憾的是USB软盘驱动器在很多时候也是热插拔的,所以有没有明确的方法来区分闪存和USB软盘驱动器,我可以看到.我知道有些属性可以工作,比如检查它是否映射到保留的驱动器A:或B(编辑:仅当机器肯定有软盘驱动器时才相关 - 请参阅MS-KB:如何更改Windows XP中的驱动器号分配),或者看一下描述,但我真的想要一些更可靠的东西.

很抱歉很长的解释,但只是想明确!谢谢

c++ usb wmi floppy wdk

7
推荐指数
2
解决办法
2454
查看次数

标签 统计

c++ ×1

floppy ×1

usb ×1

wdk ×1

wmi ×1