检查磁盘是否插入到保留分区

Check if disk inserted into a preserved partition

我正在使用 GetDriveTypeA("D:\") 检查 "preserved D" 驱动器是否存在,但它始终存在,即使没有插入磁盘。为什么?甚至在没有插入磁盘时在磁盘管理中也看不到。

仅仅因为未插入可移动磁盘并不意味着驱动器本身或其分配的驱动器号不存在。 Windows 系统 UI 可能会隐藏带有弹出媒体的驱动器(用户 将在没有媒体的驱动器上执行什么管理?),但如果需要,代码仍然可以与此类驱动器交互.这就是为什么 GetDriveType()D: 已分配给驱动器时不会失败的原因。

如果你真的需要检查磁盘是否插入,做一些需要磁盘的事情(比如查询磁盘space,或者磁盘卷信息),或者下降到MMC层并使用DeviceIoControl() 直接询问驱动器是否插入了磁盘(如果需要,是什么类型的磁盘)。