Hallo!
hat jemand schon einmal ein Image eines Datenträgers (Also ein Byteimage, so wie es Programme wie Acronis True Image, Driveimage XML oder R-linux erstellen) unter C# erstellt bzw. weis jemand vlt. wie dies gehen könnte?
Es wäre toll, wenn mir da jemand helfen könnte.
Grüße Casiopaya
Hi,
das wird nicht gehen. Weil ein byteweises auslesen einer Partition in C# nicht möglich ist. Da müsstes Du schon einen Geräte Treiber programmieren um an die Hardware am Betriebssystem vorbei heranzukommen. Und dafür ist C# die falsche Sprache.
Tschüss
Hallo!
danke für die Antwort. Wirklich schade, welche Sprache wäre denn da die richtige? Ich vermute mal mit C++ geht sowas, nicht wahr? Leider kann ich dann wohl aus den selben Gründen nicht managed C++ verwenden...
Grüße Casiopaya
Hi,
genau so ist es.
Dafür kann man andere tolle Dinge mit .NET tun.
Tschüss
Hi!
Hi,
Dafür kann man andere tolle Dinge mit .NET tun.
Tschüss
ich weiss, ich verwende es auch schon seit Jahren uns ist bei mir stets 1. Wahl. Für interessierte: Unter Raw disc Access für C++ steht wunderbar beschrieben, wie man unter C++ das ganze zu machen hat. Da ist ne VS Solution dabei, wenn man mag, kann man das ganze mit Managed C++ koppeln bzw. in die selbe Applikation packen. Funktioniert auch unter Vista!
Die Variante über Invoke CreateFile(...) hat unter C# auch noch funktioniert, allerdings nur bis Windows XP.
Grüße Casiopaya
Hallo Casiopaya,
ich habe vor einiger Zeit mal mit Visual C# 2008 für Vista eine Funktion geschrieben, um den Inhalt des Master File Tables zu lesen. Dabei habe ich mit CreateFile (API) ein Handle auf das Volume erstellt und dann mit SetFilePointerEx (API) und ReadFile (API) die Bytes direkt vom Volume gelesen. Das hat einwandfrei funktioniert. Vorraussetung ist allerdings, daß man Administratorrechte hat.
Der Aufruf für CreateFile erfolgte dabei mit den folgenden Parametern :
CreateFile(
volumeGuidString,
enACCESS_RIGHTS.GENERIC_READ,
enFILE_SHARE.READ_AND_WRITE,
IntPtr.Zero,
enCREATION_DISPOSITION.OPEN_EXISTING,
enFileAttributes.None,
IntPtr.Zero);
Wenn man erst mal das Handle hat, ist der Zugriff mit ReadFile recht einfach programmiert.
Gruß
Michael Schmitz