2015-11-17 25 views
0

我嘗試像打開物理驅動器。視窗

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

_destPath = \\開放物理驅動器。\ PhysicalDrive1 但是,當我嘗試做

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

它返回false

+0

我一直認爲,你可以直接用fstream類打開文件。 _fileWriter是一個指針嗎? –

+0

是的,_fileWriter是一個指針 –

+0

does _fileWriter指向有效的流? –

回答

2

你要運行的程序與高架通道。

請求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, 0, OPEN_EXISTING, 0, 0); 
if (hdrive == INVALID_HANDLE_VALUE) 
{ 
    cout << "error " << GetLastError() << endl; 
    return 0; 
} 

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