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