Seite 1 von 2
Zugriff auf MFT
Verfasst: 19. Aug 2010, 21:03
von Nobby1805
Ich habe mich ja schon geoutet, dass ich seit vielen Jahren nicht mehr produktiv Sw entwickelt habe und nur noch "für den Haus-/Eigengebrauch" kleine Tools erstellt habe
Jetzt reizt mich eine Problemstellung, ich habe aber im Moment weder die Zeit noch den Nerv mich tief einzuarbeiten ...
Kann mir jemand von euch einen Link nennen wie man unter .NET (blockweise) auf die $MFT zugreifen kann
Vielleicht wird da ja ein WHS-Tool oder, wenn der alte Bitfrickler wieder geweckt wird, sogar ein Add-In draus
Gruß Norbert
Re: Zugriff auf MFT
Verfasst: 19. Aug 2010, 22:07
von sTunTe
hmmm...
MFT = Master File Table
MFT = Managed File Transfer
MFT = Medizinischer Fakultätentag
MFT = Mindestfilmbildetemperatur
oder doch eher
MFT = Multifunktionale Trainingsgeräte
Ahhh, jetzt weiß ich's

MFT = Movimento Femminista Ticinese (Frauenbefreiungsbewegung)
Gruß
sTunTe
Re: Zugriff auf MFT
Verfasst: 19. Aug 2010, 22:09
von sTunTe
Re: Zugriff auf MFT
Verfasst: 19. Aug 2010, 22:57
von Nobby1805
Danke ... hast du das $ im Text doch noch gefunden

... werde ich mir mal in Ruhe ansehen
Re: Zugriff auf MFT
Verfasst: 28. Aug 2010, 20:23
von Nobby1805
Hallo Michael,
obwohl ich das Beispiel verstehe ... verzweifele ich inzwischne daran den Code auszuführen
Bei
Code: Alles auswählen
Hnd = CreateFile("\\.\" & Mid(strDrive, 1, 2),
GENERIC_READ Or GENERIC_WRITE,
FILE_SHARE_READ Or FILE_SHARE_WRITE,
Nothing,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL Or FILE_FLAG_OVERLAPPED,
IntPtr.Zero)
kommt bei mir immer -1 (INVALID_HANDLE_VALUE) zurück
und wenn ich danach ein err.lastDllError einbaue, dann liefert der mir eine 5 "Der Prozeduraufruf oder das Argument ist ungültig"
Hast du irgendeine Idee
Gruß Norbert
Re: Zugriff auf MFT
Verfasst: 28. Aug 2010, 20:31
von AliG
Hi!
Hast dus schon mit "Als Administrator ausführen" probiert?
lg Alex
Re: Zugriff auf MFT
Verfasst: 28. Aug 2010, 20:46
von Nobby1805
Ich hab es unter W7 als Admin angemeldet versucht und auch unter XP als normaler User oder als Admin
und jetzt auch noch mal unter Admin mit "Als Admin ausführen"
Re: Zugriff auf MFT
Verfasst: 28. Aug 2010, 21:08
von sTunTe
Tach Norbert.
Nobby1805 hat geschrieben:Hast du irgendeine Idee
Ich habe diesen Code mal eben schnell überflogen...
So wie ich das sehe ist ist die -1 wohl der normale Wert.
Denn wenn ich mir die nächsten Zeilen ansehe, die da lauten
Code: Alles auswählen
If (Hnd <> INVALID_HANDLE_VALUE) Then
ret = ReadFile(Hnd, Buffer, 1024, nRead, New System.Threading.NativeOverlapped)
Else
Return False
End If
ergibt das Ergebnis -1 ja Sinn.
Gruß
sTunTe
Re: Zugriff auf MFT
Verfasst: 28. Aug 2010, 21:39
von Nobby1805
Nee, wieso ? -1 ist doch INVALID_HANDLE_VALUE und dann macht er "Return False" und meldet die Platte als "nicht NTFS"
Hast du es bei dir mal versucht auszuführen ? Bei mir werden alle vorhandenen Platten als nicht NTFS angezeigt
Re: Zugriff auf MFT
Verfasst: 28. Aug 2010, 22:33
von sTunTe
Nobby1805 hat geschrieben:Hast du es bei dir mal versucht auszuführen ?
Wie gesagt, nur überflogen.
Aber da morgen bei mir (soweit ich weiß) nichts anliegt, werde ich's mal bei mir testen und berichten.
Gruß
sTunTe
Re: Zugriff auf MFT
Verfasst: 29. Aug 2010, 13:05
von sTunTe
Tach Norbert.
Ich habe mir heute morgen mal das gesamte Projekt heruntergeladen und auf meiner VM getestet.
INVALID_HANDLE_VALUE ist grundsätzlich -1, da diese als Konstante unter APIDefinitions.vb angelegt wurde.
Bei meinen Versuchen bekam ich aber immer einen positiven Zahlenwert für Hnd zurück, ganz gleich welches Laufwerk ich angegeben habe.
Ich kann hier auch nur Vermutungen anstellen, wann Hnd = -1 ist.
Und zwar bei Lese-/Zugriffsfehlern, was auch die Bezeichnung INVALID_HANDLE logisch erscheinen lässt.
Warum bei Dir nun jedes mal -1 zurückgeliefert wird....
Keine Ahnung.
Die Idee von Alex fand ich garnicht mal schlecht und würde auch Sinn ergeben.
Da Du das aber schon ausgeschlossen hast, bin ich erstmal ratlos.
Wird denn strDrive bei Dir richtig übergeben?
Nicht das da irgendwo ein "\" fehlt.
Gruß
sTunTe
Re: Zugriff auf MFT
Verfasst: 29. Aug 2010, 13:43
von Nobby1805
Hallo Michael,
ich habe testweise die Quelle unverändert genommen und klappt auch nicht
Welche VS Version hast du denn für den Test verwendet ? und auf welchem Client Windows getestet ?
Gruß Norbert
Re: Zugriff auf MFT
Verfasst: 29. Aug 2010, 16:45
von Nobby1805
Also, ..
wenn ich die compilierte Version aus dem Beispiel auf meinen WHS spiele dann funktioniert die dort und man kann seheh, dass diese mit VB2008 compiliert worden ist
Wenn ich mit VB2010 compiliere funktioniert nix

irgendwelche Ideen
Gruß Norbert
PS die compilierte Version läuft auch auf dem W7 wenn ich sie mit "Als Admininstrator ausführen" aufrufe
Re: Zugriff auf MFT
Verfasst: 29. Aug 2010, 17:08
von Nobby1805
So, läuft jetzt auch unter VB 2010

als Admin anmelden und dann zusätzliche VisualStudio mit "Als Adminisitrator ausführen" starten
Jetzt kann die eigentliche Arbeit losgehen ...
Re: Zugriff auf MFT
Verfasst: 29. Aug 2010, 17:28
von AliG
Als Admin anmelden dürfte nicht notwendig sein, aber VS muss natürlich mit Adminrechten gestartet sein, da das Programm ja im Debugger gestartet wird.
lg Alex