Откройте физический диск. Windows

1

Я пытаюсь открыть физический диск, как

ofstream * _fileWriter->open(_destPath, std::ofstream::out | std::ofstream::binary);

_destPath = \\.\PhysicalDrive1 Но, когда я пытаюсь сделать

if (!(_fileWriter->is_open()))
    return false;

Он возвращает false

  • 0
    Я всегда думал, что вы можете просто открывать файлы напрямую с помощью класса fstream. Является ли _fileWriter указателем?
  • 0
    Да, _fileWriter это указатель
Показать ещё 5 комментариев
Теги:

1 ответ

3

Вы должны запустить программу с повышенным доступом.

Запросить GENERIC_READ/GENERIC_WRITE

hdrive = CreateFile(L"\\\\.\\PhysicalDrive0", GENERIC_READ,
    FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);

Если вы просто хотите получить информацию о диске, вы можете открыть диск без доступа на чтение и запись, код ниже не должен иметь повышенный доступ:

HANDLE hdrive;
hdrive = CreateFile(L"\\\\.\\PhysicalDrive0", 0, 
    FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);
if (hdrive == INVALID_HANDLE_VALUE)
{
    cout << "error " << GetLastError() << endl;
    return 0;
}

cout << "open" << endl;
CloseHandle(hdrive);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню