Открытие рукоятки для флешки дает мне код ошибки «Доступ запрещен»

StackOverflow https://stackoverflow.com/questions/3672086

Вопрос

Я хотел бы знать, почему, когда я пытаюсь создать ручку на флэш-накопитель 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 | File_share_write; Вы пытаетесь открыть его в эксклюзивном режиме, и это не удастся. См. Документация MSDN для CreateFile для получения дополнительной информации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top