Entwickler-Ecke
Windows API - direkt zugriff auf datenträger
mister_x - Do 25.09.08 17:33
Titel: direkt zugriff auf datenträger
sers leute
ich möchte gerne wie bei
http://www.delphiforum.de/viewtopic.php?t=36173&highlight=hxd
direkt auf ein Laufwerk zugreifen(read/write) also auch wenn kein dateiensystem vorhanden ist
kann mir jemand sagen wie das geht oder mir nützliche links schicken.....
würd mich auf eure antworten freun
gruß
MISTER_X
Delete - Do 25.09.08 17:38
früher ging das, indem du direct das bios via assembler programmiert hast. aber da musst erst mal rausfinden welche hardware du genau hast...
persönlicher tipp, lass die finger davon. ist viel arbeit und du zerschiesst dir die platte allzugern ...
mister_x - Do 25.09.08 18:04
also ich will des mit ner SD-Card machn weil ich die als datenspeicher für ein selbstgebautes system nutzen will
un da will ich nen eigenes dateiensystem drauf machen.....
der editor zu dem ich oben den link gesetzt hab scheint gut auf ein laufwerk zugreifen zukönnen, ich müsst halt wissen wie man so was macht^^
BenBE - Do 25.09.08 18:07
Die Nutzung der Suchfunktion hätte Dir hier sicherlich geholfen, da dieses Thema (inklusive Units) schon mehrfach diskutiert wurde ...
mister_x - Do 25.09.08 18:19
wo? ich hab schon gesucht
wahrscheinlich ma wieder die falschen schlagwörter^^
könntest du mir einen tipp geben??^^
Delete - Do 25.09.08 22:33
Öffne das Laufwerk physisch mit
CEATEFILE. Dann hast du einen direkten Schreizugriff. Das setzt allerdings Administratorenrechte vorraus. Die saubereste Lösung waäre aber ein eigener Dateisystemtreiber.
mister_x - Fr 26.09.08 17:03
so hab was gefunden
ging mit createfile
war auch nich so schwierig^^
Delete - Fr 26.09.08 22:28
mister_x hat folgendes geschrieben: |
| so hab was gefunden |
Wieso gefunden? Ich habe dir doch die richtige Funktion genannt. :?
Delete - Fr 26.09.08 23:04
Titel: Re: direkt zugriff auf datenträger
mister_x hat folgendes geschrieben: |
| ich möchte gerne .. direkt auf ein Laufwerk zugreifen(read/write) also auch wenn kein dateiensystem vorhanden ist |
mister_x hat folgendes geschrieben: |
so hab was gefunden
ging mit createfile |
und was hat das damit zu tun ... :nixweiss: :nixweiss:
mister_x - Fr 26.09.08 23:44
^^ meine antwort war vlt en bisschen kurz
mit diesem code kann man auf die einzelnen sectoren zugreife(read/write)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| ..... hDeviceHandle := CreateFile(Drive,GENERIC_ALL,FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0); Drive := pChar('\\.\J:'); BytesPerSector:=512; ....
function ReadSector(Sector:Integer):pChar;
begin
if hdevicehandle<>INVALID_HANDLE_VALUE then
begin
result := allocmem(BytesPerSector);
FileSeek(hdevicehandle,Sector*BytesPerSector,0);
if FileRead(hdevicehandle,result[0],BytesPerSector)<>BytesPerSector then
raise exception.Create('Read');
end;
end;
procedure TMainForm.WriteSector(Buffer: PAnsiChar; Sector: Integer);
begin
if hdevicehandle<>INVALID_HANDLE_VALUE then
begin
FileSeek(hdevicehandle,Sector*BytesPerSector,0);
if FileWrite(hdevicehandle,Buffer[0],BytesPerSector)<>BytesPerSector then
raise exception.Create('Write');
end;
end; |
funktioniert bei mir ohne probleme
noch ma danke für die antworten
Gruß
MISTER_X
ps ich hoffe Grenzgaenger sieht jz was das damit zu tun hat^^
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!