我尝试打开物理驱动器

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

_destPath = \\。\ PhysicalDrive1
但是,当我尝试做
if (!(_fileWriter->is_open()))
    return 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);

关于c++ - 打开物理驱动器。视窗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33753020/

10-12 15:35