Открытие дескриптора флешки дает мне код ошибки «Отказано в доступе» - PullRequest
2 голосов
/ 09 сентября 2010

Я хотел бы знать, почему при попытке создать дескриптор 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 не позволяет приложениям открывать дескриптор на съемные диски?

1 Ответ

1 голос
/ 09 сентября 2010

У этого кода две проблемы. Во-первых, путь. Вы на самом деле указываете корневую папку диска; что вам действительно нужно, это объем. Удалите обратную косую черту с пути; то есть _T ("\\\\. \\ F:"). Во-вторых, вам нужно указать FILE_SHARE_READ | FILE_SHARE_WRITE; Вы пытаетесь открыть его в эксклюзивном режиме, и это не удастся. См. Документацию MSDN для CreateFile для получения дополнительной информации.

...