CreateFile PhysicalDrive2



  • Heyho

    Wollt ein Programm schreiebn, damit ich den MBR auf einen Flash Speicher bearbeiten kann. VOrher wollte ich zum "Üben" erst mal den MBR von meiner HDD auf der Windows 7 ist auslesen. Laut Google und Co. scheint es ja nicht all zu schwer zu sein doch gibt mir folgender Code und sämtliche Beispielcodes aus dem Internet ERROR_FILE_NOT_FOUND für GetLastError() und INVALID_HANDLE_VALUE für CreateFile() zurück.

    #include <Windows.h>
    #include <stdio.h>
    
    int main(void)
    {
    
    	HANDLE hDevice = CreateFileW(L"\\\\.\\PhysicalDrive2", 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
    	printf("%d\n", hDevice);
    	if (hDevice != INVALID_HANDLE_VALUE) CloseHandle(hDevice);
    	else printf("%d\n", GetLastError());
    
    	system("pause");
    }
    

    Anstatt L"\\\.\\PhysicalDrive2" habe ich auch sämtliche andere Varianten versucht und auch als Administrator ausgeführt.

    Jemand ne Ahnung was ich falsch mache?

    p.s: Kanns sein, dass die Suchfunktion kaputt ist? Egal wonach ich suche, es werden nie Beiträge gefunden.



  • Existiert denn \\.\PhysicalDrive2 überhaupt? Die Nummerierung ist wie C-Arrays 0-basiert.



  • Hm ok sehr dummer Fehler^^
    Hab irgendwo gelesen, dass 0 für A, 1 für B, 2 für C steht usw. Und da ich Windows auf C installiert habe dachte ich PhysicalDrive2 wär das richtige und dachte auch ich hab PhysicalDrive0 schon versucht >.> Aber die Buchstaben beziehen sich ja auf Partitionen und nicht auf physikalische Festplatten 😣



  • Bei mir funktioniert das Programm so. Vielleicht musst du den Punkt durch ein ? ersetzen?

    In the ANSI version of this function, the name is limited to MAX_PATH characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\?\" to the path.
    --http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx


Anmelden zum Antworten