私は独自のファイルシステムを含むUSBストレージデバイスを取り扱っています。だから、私はこのファイルシステムのためのビューアを実装するために、これらのデバイスの512バイトのブロックを読む必要があります。DelphiでUSBストレージデバイスからrawブロックを読み取る方法は?
どうすればよいですか? Delphiを使用してその上にいくつかの資料がありますか?
私は独自のファイルシステムを含むUSBストレージデバイスを取り扱っています。だから、私はこのファイルシステムのためのビューアを実装するために、これらのデバイスの512バイトのブロックを読む必要があります。DelphiでUSBストレージデバイスからrawブロックを読み取る方法は?
どうすればよいですか? Delphiを使用してその上にいくつかの資料がありますか?
は
var
RawMBR : array [0..511] of byte;
btsIO : DWORD;
begin
hDevice := CreateFile('\\.\PHYSICALDRIVE1', GENERIC_READ,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
if hDevice <> INVALID_HANDLE_VALUE then
begin
SetFilePointer(hDevice,512 * 0,nil,FILE_BEGIN); // replace 0 with sector that you wish to read
ReadFile(hDevice, RawMBR[0], 512, btsIO, nil);
CloseHandle(hDevice);
end;
end;
のソースだけで、他のディスクのようにそれを読んで、RawDiskAccessコンポーネントを試してみました。 (あなたのために働く場合があります) RAWディスクアクセスが(あなたのために働く場合があります) TDiskIO(古すぎる
http://www.torry.net/pages.php?id=253
物理ディスクアクセス:あなたはちょうどあなたが見ることができるDelphiの場合は最初のセクター
が必要
これらのコンポーネントはDelphi 2010でコンパイルされず(おそらく2009年のDelphisよりも)、それらを移植することは苦労しています。他のソリューションが提案されていない場合は、Windows APIを直接試してみましょう。 – ivarec
XP、Vista、Windows 7のRAWパーティションへの読み取りと書き込みアクセスを提供する製品です(Windows APIとRawDiskを使用すると特定のセキュリティ制限があり、これらの制限を回避できます)。RawDiskコードはDelphi 5からDelphi XEまでのすべてのバージョンのDelphiで利用できます(XE2のサポートは数日後に追加されます)。私はここにコンポーネントを憎む
それは完全に機能しました。ありがとう。 – ivarec
このコードをドライブに使用する方法(c:\、d:\など)?私を助けることは可能でしょうか? (^ _ ^) –
@ShaahinAshayeriの作成ファイルで\\。\ C: – opc0de