2

我想知道为什么当我尝试创建 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 是否阻止应用程序打开可移动驱动器的句柄?

4

1 回答 1

1

该代码有两个问题。首先,路径。您实际上是在指定驱动器的根文件夹;你真正需要的是音量。从路径中删除尾部反斜杠;即 _T("\\\\.\\F:")。其次,您需要指定 FILE_SHARE_READ | FILE_SHARE_WRITE;您试图以独占模式打开它,这将失败。有关详细信息,请参阅 CreateFile 的 MSDN 文档。

于 2010-09-09T02:12:19.057 回答