A
Hallo!
ich habe eine Aufgabe bekommen: ich soll ein Programm schreiben, das bei Windows-Rechnern die Master Boot Record über ein Ethernet clont (Erst mal nur die MBR, der Rest später). Dabei wird auf einem Zielrechner per IDE-Anschluss und Jumper eine Festplatte angeschlossen, deren MBR dann überschrieben wird.
Nun habe ich es mir so gedacht:
An Sektor 0, wo die MBR ja ist, komme ich mit CreateFile ja ran:
HANDLE hFile = CreateFile("\\\\.\\PhysicalDrive0", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);
ReadFile(hFile, reinterpret_cast<void*>(&buf), 512, &i, 0);
CloseHandle(hFile);
Das kann ich ja per Winsock problemlos versenden an den Zielrechner. Der läd die 512 Bytes ins RAM und müsste dann per ReadFile auf die angeschlossene HDD schreiben können.
Funktioniert das so? Oder gibt es zwischendurch irgendwelche Probleme? Ich wollte es erst mit den Assembler-Interrupts 13 u. 25/26 probieren, da blockt aber Windows den Schreib/Lese-Zugriff ab.
Ich habe mir den Puffer testweise mal ausgeben lassen. Irgendwann steht dann da:
"Invalid partition table Error loading operating system Missing operating system", ist das dann überhaupt die richtige Drive?