我想知道为什么当我尝试创建 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 是否阻止应用程序打开可移动驱动器的句柄?
最佳答案
该代码有两个问题。第一,路径。您实际上是在指定驱动器的根文件夹;您真正需要的是音量。从路径中删除结尾的反斜杠;即 _T("\\\\.\\F:")。其次,您需要指定 FILE_SHARE_READ |文件共享写入;您正试图以独占模式打开它,这将失败。有关详细信息,请参阅 CreateFile 的 MSDN 文档。
关于windows - 打开闪存驱动器的句柄给我一个 "Access Denied"错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3672086/