我尝试打开像
这样的物理驱动器ofstream * _fileWriter->open(_destPath, std::ofstream::out | std::ofstream::binary);
_destPath = \\。\ PhysicalDrive1 但是,当我尝试做的时候
if (!(_fileWriter->is_open()))
return false;
返回false
答案 0 :(得分: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);