Hallo Leute, Der Fairness halber möchte ich erwähnen, das ich schon in einem VB Forum um Hilfe gepostet habe. Mein Problem: Ich möchte bei einem USB Stick auf die einzelnen Sektoren zugreifen.(Auch MBR!!!) Sinn des ganzen ist, das von einem Embedded PC auf den Stick ohne Dateisystem geschrieben wird. Arbeite jetzt immer mit einem Diskeditor, den ich fernsteuere. Daher: (http://www.vbarchiv.net/forum/id10_i75225t75225_exe-datei-an-projekt-anhaengen.html) Das möchte ich aber nun selbst übernehmen, weil ich schneller und flexibler erbeiten kann. Seht ihr da Möglichkeiten, um auf LowLevel darauf lesend UND schreiben zuzugreifen? Habe eine Möglichkeit für VB6 gefunden.Dies funktioniert. Leider lässt sich der Code nicht nach .net portieren :-( mfG Seek1
Seek1 schrieb:
Im finsteren Mittelalter der PC-Ära, musste man für HDD-Sektorenzugriffe
direkt auf die ATA-Register (IO-Ports =x2??) zugreifen. Unter Windows
geht das nicht mehr ohne einen Device-Treiber dafür zu schreiben.
Ich würde also mal bei den Device API's schauen ob es da was passendes
gibt. Ich bezweifle dass man mit VisualBasic so tief auf die Hardware
zugreifen kann. Zumal hier noch USB als weiter SW-Schicht dazwischen
liegt.
Windows selber abstrahiert die Sektoren zu einem Filesystem, was du ja nicht willst. Deswegen brauchst du einen Treiber. Ob du einen fertigen benutzen kannst oder selber einen schreiben musst weiß ich leider nicht.
Mit CreateFile() direkt die Harddisk öffnen und dann mit ReadFile() die Sektoren einlesen. Siehe MSDN
1 | Another example of using the Win32 device namespace is using the CreateFile function with "\\.\PhysicalDiskX" (where X is a valid integer value) or "\\.\CdRomX". This allows you to access those devices directly, bypassing the file system. This works because these device names are created by the system as these devices are enumerated, and some drivers will also create other aliases in the system. For example, the device driver that implements the name "C:\" has its own namespace that also happens to be the file system. |
[1] https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx [2] https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858%28v=vs.85%29.aspx [3] https://msdn.microsoft.com/en-us/library/windows/desktop/aa365467%28v=vs.85%29.aspx
:
Bearbeitet durch User
Naja. unter VB5 und VB6 hats ja auch funktioniert. http://www.freevbcode.com/ShowCode.asp?ID=9370 http://www.vbarchiv.net/forum/id2_i90783t90737_cd-nr-und-disk-image.html
Zu spät. Danke an Thomas K. :-D Ich glaube da werde ich einhaken :-)
Sebastian Hepp schrieb: > Windows selber abstrahiert die Sektoren zu einem Filesystem, was du ja > nicht willst. Soweit richtig. Sebastian Hepp schrieb: > Deswegen brauchst du einen Treiber. Falsch. Er kann - mit Admin Privilegien - einfach das Physical Device aufmachen und dann Sektoren lesen und schreiben. Allerdings würde ich auch im embedded Device immer ein FAT Dateisystem benutzen. Das ist fast immer einfacher als selber was zu frickeln, denn es gibt reichlich open source Code.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.