如何检查USB插槽中是否存在空闪存卡读卡器?
how to check if empty flash card reader is present in usb slot?
我使用GetLogicalDrives()
来获取计算机上的所有驱动器,但该功能不仅显示现成的卷,还显示没有卡的空闪存读卡器。接下来,GetDriveType()
显示此类卷的代码 2。无论闪存卡是否存在于插槽中,都无关紧要。一些多读卡器会产生许多这样的不存在的驱动器,问题是我如何确定此类卷的正确状态。
尝试在这种不存在的驱动器上调用FindFirstFile()
即使在控制台应用程序中也会产生视觉错误:Exception Processing Message c0000013 Parameters 75b3bf7c 4 75b3bf7c 75b3bf7c
出现此类错误后,代码将继续运行,但此烦人的错误会在窗口中向用户显示,因为应用程序将发生重大崩溃。
因此,处理此问题的一种方法是使用FindFirstFile,但我不知道有什么方法可以消除用户的错误。
终于找到了!这里成功的关键是GetVolumeInformation()
.
当 USB 插槽中有空读卡器时,它返回 0 并将最后一个错误设置为 21。 :)
这里有一些很好的选择:
- 如何检测硬盘驱动器是否通过 USB 连接?
特别:
if( 2 == ::getDriveType( <driveletter> ))
函数的返回值:
DRIVE_UNKNOWN 0:无法确定驱动器类型。
DRIVE_NO_ROOT_DIR 1:根路径无效;例如,指定路径上没有装入卷。
DRIVE_REMOVABLE 2:驱动器具有可移动介质;例如,软盘驱动器、拇指驱动器或闪存卡读卡器。
DRIVE_FIXED 3:驱动器具有固定介质;例如,硬盘驱动器或闪存驱动器。
DRIVE_REMOTE 4:驱动器是远程(网络)驱动器。
DRIVE_CDROM 5:驱动器是 CD-ROM 驱动器。
DRIVE_RAMDISK 6:驱动器是 RAM 磁盘。
http://msdn.microsoft.com/en-us/library/windows/desktop/aa364939(v=vs.85).aspx
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 有了gcc,是否可以链接库,但前提是它存在
- gcc和clang在表达式是否为常量求值的问题上存在分歧
- 如何检查QList中是否存在值
- 根据某个函数是否存在启用模板
- 地图计数确实很重要,或者只是检查是否存在
- C++中是否存在 std::conditional 的懒惰等价物?
- 无论如何,我可以确定构造函数是否存在吗?
- COM :是否可以查看是否存在对我的某个 COM 对象的进程外引用?我可以释放它吗?
- 堆分配的对象是否存在永不为空的唯一所有者?
- 扩展类中的可选 vir 函数,测试它在运行时是否存在
- 模板化检查是否存在带有参数列表的类成员函数?
- 是否存在包含负号的isdigit函数(过载)
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 检查编译时是否存在静态函数
- 向量是否存在行主要形式?
- 检查 TinyXML 中的元素是否存在
- 检测是否存在具有 C++17 的类成员
- 虚拟继承中是否存在多重继承?
- 我遇到了这个代码片段,不明白. 它递归检查 C++ 字符串中是否存在大写字符