2016-04-27 46 views
5

Voglio ottenere gestire dall'unità C:/ .I può ottenere gestire dal disco da:come aprire la partizione con l'API CreateFile?

HANDLE hd = CreateFile("\\\\.\\PhysicalDrive0", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, NULL); 

Come accedere alla partizione del disco?

quando l'uso di questo codice:

HANDLE hd = CreateFile("\\.\C", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, NULL); 

e utilizzare GetLastError codice di errore() è 123.

ERROR_INVALID_NAME

123 (0x7B)

Il nome del file, nome della directory , o la sintassi dell'etichetta del volume non è corretta.

da Microsoft doc: image

ma non funziona!

grazie in anticipo.

risposta

4

Il nome da utilizzare per aprire un volume è C: e assicurarsi che le barre rovesciate siano sfuggite in modo appropriato.

HANDLE hd = CreateFile("\\\\.\\C:", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, NULL); 

Nota che probabilmente otterrete errore 5 (Accesso negato), a meno che l'exe viene eseguita con i privilegi di amministratore.

+0

no, non corretto.error 123! –

+0

@mohammadmadani oops, mi ci è voluto un minuto per rendermi conto che i backslash non erano fuggiti correttamente. Risposta aggiornata – Steve

+0

funziona molto bene. –