Laden...

Datenträger-Imagedatei

Erstellt von Casiopaya vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.153 Views
C
Casiopaya Themenstarter:in
18 Beiträge seit 2006
vor 14 Jahren
Datenträger-Imagedatei

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

A
254 Beiträge seit 2007
vor 14 Jahren

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

C
Casiopaya Themenstarter:in
18 Beiträge seit 2006
vor 14 Jahren

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

A
254 Beiträge seit 2007
vor 14 Jahren

Hi,

genau so ist es.

Dafür kann man andere tolle Dinge mit .NET tun.

Tschüss

C
Casiopaya Themenstarter:in
18 Beiträge seit 2006
vor 14 Jahren

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

U
36 Beiträge seit 2008
vor 14 Jahren

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