簡體   English   中英

如何使用Delphi從USB存儲設備讀取原始塊?

[英]How to read raw block from an USB storage device with Delphi?

我正在處理包含專有文件系統的USB存儲設備。 因此,我需要讀取這些設備的512字節塊來實現此文件系統的查看器。

我該怎么辦呢? 使用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組件,源德爾福7 這里

在執行原始讀取訪問時,就像任何其他磁盤一樣讀取它。 你只需要第一個部門

對於Delphi,您可以查看:

http://www.torry.net/pages.php?id=253

物理磁盤訪問(可能適合您)原始磁盤訪問(可能適合您)TDiskIO(太舊了,僅適用於w9x)

我們有RawDisk產品,它提供對XP,Vista和Windows 7下的原始分區的讀寫訪問權限(使用Windows API時存在某些安全限制,而RawDisk允許您繞過這些限制)。 代碼適用於從Delphi 5到Delphi XE的所有Delphi版本(XE2支持將在幾天內添加)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM