Windows – 如何禁用“错误的卷”错误信息

我的应用程序在后台读取/写入数据到可移动媒体(USB DOK)。 问题是,当应用程序正在运行时,USB被移除时,电脑会popup一条错误消息:

错误的音量

驱动器中有错误的音量。 请将音量插入驱动器E :.

取消重试继续

这发生在诸如GetFileSize,ReadFile之类的操作中。 显然,由于该应用程序应该在后台工作,我想压制这些消息,并默默地失败。

顺便说一句 – 看起来,给这些消息的过程不是我的过程,但CSRSS.EXE(虽然原因绝对是我的过程中的操作)。

我正在考虑的一个方向是切换到NtQueryInformationFile,NtReadFile等,但我宁愿不…

谢谢

尝试拨打:

SetErrorMode(SEM_NOOPENFILEERRORBOX); 

在你的主要功能的开始。

从文档 :

系统在找不到文件时不显示消息框。 相反,错误将返回给调用进程。

我建议你使用Windows系统托盘中的图标正确断开硬件连接,以便在将其从驱动器中取出时不会被访问。 或者至少先退出你的ap。