我想知道为什么当我尝试创建USB闪存驱动器的句柄时,我收到路径未找到错误。
HANDLE aFile = CreateFile(_T("\\\\.\\F:\\"), GENERIC_READ, 0, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (aFile == INVALID_HANDLE_VALUE)
{
printf("\n");
printf("Bad handle value. Error %d \n", GetLastError());
}
从那里我想读取一个512字节的流(引导扇区)到.bin文件,但我似乎无法首先通过句柄创建。 Windows是否阻止应用程序打开可移动驱动器的句柄?
答案 0 :(得分:1)
该代码有两个问题。首先,路径。您实际上是指定驱动器的根文件夹;你真正需要的是音量。从路径中删除尾部反斜杠;即_T(“\\\\。\\ F:”)。其次,您需要指定FILE_SHARE_READ | FILE_SHARE_WRITE;您试图以独占模式打开它,这将失败。有关更多信息,请参阅CreateFile的MSDN文档。