【发布时间】:2010-10-06 12:12:12
【问题描述】:
CreateFile 分配 2(!!) 个句柄,而 CloseHandle 在尝试获得对 cd-rom 设备的低级访问时仅关闭一个句柄。操作系统 Windows XP SP3,7 台测试计算机中有 5 台运行相同。
当尝试访问硬盘驱动器号时,CreateFiles 工作正常并且只分配一个句柄。
这里是示例代码:
HANDLE m_driveHandle = CreateFileW("\\\\.\\E", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);关闭句柄(m_driveHandle);
可能的原因是什么还是只是一个微软的错误?
更新。驱动器名称没有剪切和粘贴。正确的字符串是 L"\\.\E:"。错误仍然存在。
更新2。问题解决了!看看我下面的答案(欧米茄)。
【问题讨论】:
-
你是如何确认一开始就是泄密的?
-
是的,我们禁用了可能的包装软件,包括防病毒软件和 nero(但不会卸载它,嗯...)
-
在 TaskManager、ProcessExplorer 等中检测到泄漏。
-
通过CreateFile、CloseHandle反复打开和关闭文件会不会出现这种情况?
-
您的代码中的错误比 Microsoft 的代码中的错误更大(尽管一切皆有可能)。请显示更多代码,以便我们为您查找问题。
标签: c++ winapi cd-burning