国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

用DELPHI實現NT環境下的絕對磁盤讀寫

2019-11-18 18:27:45
字體:
來源:轉載
供稿:網友
 

了解實模式編程的朋友都知道,可以利用BIOS的INT 13中斷來進行磁盤的絕對讀寫,但在NT環境下,卻不能使用INT 13中斷來直接讀寫硬盤.在這里,我們可以利用CreateFile并將路徑名設為"//./X:"來打開邏輯盤,并進行讀寫.在進里X為盤符.

CreateFile函數原型如下:
HANDLE CreateFile(LPCTSTR lpFileName, DWord dwDesiredaccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDistribution, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
lpFileName: 要打開的文件的名字
dwDesiredAccess: 如果為 GENERIC_READ 表示允許對設備進行讀訪問;如果為 GENERIC_WRITE 表示允許對設備進行寫訪問(可組合使用);如果為零,表示只允許獲取與一個設備有關的信息.
dwShareMode: 零表示不共享; FILE_SHARE_READ 和/或 FILE_SHARE_WRITE 表示允許對文件進行共享訪問
lpSecurityAttributes: 指向一個SECURITY_ATTRIBUTES結構的指針,定義了文件的安全特性
dwCreationDistribution: 建立方式
dwFlagsAndAttributes: 其它屬性
hTemplateFile: 如果不為零,則指定一個文件句柄。新文件將從這個文件中復制擴展屬性


下面的例子在Windows xp下編譯通過, 其實現的功能為讀取C盤的引導扇區,并將讀出的數據顯示出來.

PRogram ReadDisk;


uses
  SysUtils,
  Windows;

var
  Buf: array [0..511] of Byte;     //數據緩沖區
  ShowText, TmpStr: string;
  FileHandle: THandle;          
  ReadCount, i: Cardinal;
begin
  //打開磁盤
  FileHandle := CreateFile('//./C:', GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,
    nil, OPEN_EXISTING, 0, 0);
  if FileHandle = INVALID_HANDLE_VALUE then
  begin
    MessageBox(GetDesktopWindow, '打開磁盤失敗', 'ERROR', MB_OK);
    ExitProcess(0);
  end;
  //讀出引導扇區數據
  if ReadFile(FileHandle, Buf, 512, ReadCount, nil) then
  begin
    SetLength(ShowText, Length(Buf) * 3);
    //將數據轉為字串
    for i := Low(Buf) to High(Buf) do
    begin
      TmpStr := Format('%2.2x ', [Buf[i]]);
      CopyMemory(@ShowText[i*3+1], @TmpStr[1], 3);
    end;
  end;
  MessageBox(GetDesktopWindow, PChar(ShowText), '引導扇區', MB_OK);
  CloseHandle(FileHandle);
  ExitProcess(0);
end.


上一篇:delphi讀取ini文件

下一篇:Delphi中的線程類--之(5,大結局)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 鄢陵县| 涟水县| 小金县| 科技| 内江市| 滦平县| 正安县| 策勒县| 阳朔县| 淮北市| 隆子县| 明水县| 富蕴县| 山东省| 宾川县| 温州市| 罗田县| 南投市| 新巴尔虎右旗| 普定县| 金山区| 乌拉特中旗| 栾城县| 安宁市| 孙吴县| 儋州市| 莱芜市| 哈密市| 中西区| 漠河县| 公主岭市| 寿宁县| 思南县| 乌拉特前旗| 理塘县| 若尔盖县| 长沙县| 鄂州市| 甘谷县| 社旗县| 宁晋县|