打开物理驱动器。视窗

时间:2015-11-17 09:12:56

标签: c++ windows

我尝试打开像

这样的物理驱动器
ofstream * _fileWriter->open(_destPath, std::ofstream::out | std::ofstream::binary);

_destPath = \\。\ PhysicalDrive1 但是,当我尝试做的时候

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

返回false

1 个答案:

答案 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);