Я пытаюсь открыть физический диск, как
ofstream * _fileWriter->open(_destPath, std::ofstream::out | std::ofstream::binary);
_destPath = \\.\PhysicalDrive1 Но, когда я пытаюсь сделать
if (!(_fileWriter->is_open()))
return false;
Он возвращает false
Вы должны запустить программу с повышенным доступом.
Запросить 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);