亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bioshelp.pas

?? 一個售樓系統
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
Unit BiosHelp;

{$ALIGN ON}
{$MINENUMSIZE 4}

Interface

Uses
   Windows;

Type
   PRomBiosDump = ^TRomBiosDump;
   TRomBiosDump = Array[$000F0000..$000FFFFF] Of byte;

Type
   TReadRomBiosMethod = (
      rrbmAutomatic,                    { Autodetect OS type and use proper method }
      rrbmGeneric,                      { Use 16-bit COM program to dump the BIOS  }
      rrbmMemory,                       { Read from memory (Win9x)                 }
      rrbmPhysical                      { Read from physical memory object (WinNT) }
      );

Function ReadRomBios(Var Dump: TRomBiosDump; Method: TReadRomBiosMethod;
   Timeout: dword = INFINITE): Boolean;

Function GetRomBiosBuffer(Const Dump: TRomBiosDump; Address: Pointer;
   Var Buffer; BufferSize: cardinal): cardinal;
Function GetRomBiosString(Const Dump: TRomBiosDump; Address: Pointer): String;
Function GetRomBiosLongLong(Const Dump: TRomBiosDump; Address: Pointer):
   LONGLONG;
Function GetRomBiosDWord(Const Dump: TRomBiosDump; Address: Pointer): dword;
Function GetRomBiosWord(Const Dump: TRomBiosDump; Address: Pointer): word;
Function GetRomBiosByte(Const Dump: TRomBiosDump; Address: Pointer): byte;
Function GetmotherboradKey: String;     //取得系統系列號
Function Getmotherboradver: String;     //BIOS 版本
Function Getmotherboraddate: String;    //BIOS日期
Function Getmotherboradverxx: String;   //BIOS 版權信息
Function Getmotherboradname: String;    //BIOS 名稱

Implementation

{##############################################################################
#
# #
#                             GENERIC METHOD #
# #
# Create an temporary folder, save an 16bit COM program (RomDump.com) into it,
#
# execute program redirected to an file (Rom.dmp, RomDump.com simply dumps the
#
# memory range F000:0000-F000:FFFF to STDOUT), read dump file into the buffer,
#
# and finally cleanup all temporary files and directories. #
# #
# (the function RomDumpCode is x86 specific, which i wrote to generate 16-bit #
#  code with the help of the 23-bit Delphi compiler, never try to execute the #
#  pseudo-code in your program! it will not work in 32-bit protected mode) #
# #
###############################################################################
}

{ *INTERNAL* - Pseudo 16-bit code }

Type
   PRomDumpCodeInfo = ^TRomDumpCodeInfo;
   TRomDumpCodeInfo = (rdciStart, rdciEnd, rdciSize);

Function _RomDumpCode(Info: TRomDumpCodeInfo): Pointer;
Var
   CodeStart        : Pointer;
   CodeEnd          : Pointer;
Begin
   Asm
         JMP     @@End

         { *BEGIN* 16-bit code  }
         { -- never use it in your program! -- }
         { COM which writes ROM-BIOS to StdOut }
 @@Start:
         { Dump F000:0000-F000:FFFE }
         XOR     eDX, eDX  // DS = 0xF000   ; Data segment
         MOV     DH, 0F0h
         MOV     DS, eDX
         XOR     eDX, eDX  // DX = 0x0000   ; Data offset
         XOR     eCX, eCX  // CX = 0xFFFF   ; Data length
         DEC     eCX
         XOR     eBX, eBX  // BX = 0x0001   ; STDOUT (file handle)
         INC     eBX
         MOV     AH, 40h   // DosCall(0x40) ; INT21, DOS_WRITE_TO_HANDLE
         INT     21h
         JC      @@Exit    // On error exit ; AL = Error code
         { Dump F000:FFFF }
         XOR     eDX, eDX  // DS = 0xF000   ; Data segment
         MOV     DH, 0F0h
         MOV     DS, eDX
         XOR     eDX, eDX  // DX = 0xFFFF   ; Data offset
         DEC     eDX
         XOR     eCX, eCX  // CX = 0x0001   ; Data length
         INC     eCX
         MOV     eBX, eCX  // BX = 0x0001   ; STDOUT (file handle)
         MOV     AH, 40h   // DosCall(0x40) ; INT21, DOS_WRITE_TO_HANDLE
         INT     21h
         JC      @@Exit    // On error exit ; AL = Error code
         MOV     AL, 0     // no error      ; AL = 0
 @@Exit:
         MOV     AH, 4Ch   // DosCall(0x4C) ; INT21, DOS_TERMINATE_EXE
         INT     21h
 @@End:
         { *END* 16-bit code  }

         MOV     CodeStart, OFFSET @@Start
         MOV     CodeEnd, OFFSET @@End
   End;
   Case Info Of
      rdciStart:
         result := CodeStart;
      rdciEnd:
         result := CodeEnd;
      rdciSize:
         result := Pointer(cardinal(CodeEnd) - cardinal(CodeStart));
   Else
      result := Nil;
   End;
End;

{ *INTERNAL* - Save 16-bit code to file }

Function _RomDumpCodeToFile(Const FileName: String): Boolean;
Var
   ComFile          : THandle;
   Size             : cardinal;
Begin
   result := false;
   ComFile := CreateFile(pchar(FileName), GENERIC_WRITE, FILE_SHARE_READ, Nil,
      CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
   If ComFile <> INVALID_HANDLE_VALUE Then Try
      result := WriteFile(ComFile, _RomDumpCode(rdciStart)^,
         cardinal(_RomDumpCode(rdciSize)), Size, Nil) And
         (Size = cardinal(_RomDumpCode(rdciSize)));
      If Not result Then
         DeleteFile(pchar(FileName));
   Finally
      CloseHandle(ComFile);
   End;
End;

{ *INTERNAL* - Execute 16-bit code redirected to file }

Function _RomDumpCodeExecute(Const Com, Dmp: String; Timeout: dword): Boolean;
Var
   ComSpec          : String;
   si               : TStartupInfo;
   Pi               : TProcessInformation;
Begin
   result := false;
   SetLength(ComSpec, MAX_PATH);
   SetLength(ComSpec,
      GetEnvironmentVariable('ComSpec', pchar(@ComSpec[1]), MAX_PATH));
   If Length(ComSpec) > 0 Then Begin
      FillChar(si, SizeOf(TStartupInfo), 0);
      si.cb := SizeOf(TStartupInfo);
      si.dwFlags := STARTF_USESHOWWINDOW;
      si.wShowWindow := SW_HIDE;
      If CreateProcess(Nil, pchar(ComSpec + ' /C ' + Com + ' > ' + Dmp),
         Nil, Nil, false, CREATE_NEW_CONSOLE Or CREATE_NEW_PROCESS_GROUP,
         Nil,
         Nil, si, Pi) Then Try
         result := WaitForSingleObject(Pi.hProcess, Timeout) <>
            WAIT_TIMEOUT;
      Finally
         CloseHandle(Pi.hProcess);
         CloseHandle(Pi.hThread);
      End;
   End;
End;

Function DirectoryExists(Const Dir: String): Boolean;
Var
   Attr             : dword;
Begin
   Attr := GetFileAttributes(pchar(Dir));
   result := (Attr <> $FFFFFFFF) And
      (Attr And FILE_ATTRIBUTE_DIRECTORY = FILE_ATTRIBUTE_DIRECTORY);
End;

{ Get BIOS dump the generic way }

Function ReadRomBios16(Var Buffer: TRomBiosDump; Timeout: dword): Boolean;
Const
   TempSub          = '~RomDmp';
   ComName          = 'RomDump.com';
   DmpName          = 'Rom.dmp';
Var
   TempPath         : String;
   TempDir          : String;
   TempIdx          : integer;
   TempIdxStr       : String;
   ComFile          : String;
   DmpFile          : String;
   DmpHandle        : THandle;
   Written          : dword;
Begin
   result := false;
   SetLength(TempPath, MAX_PATH);
   SetLength(TempPath, GetTempPath(MAX_PATH, pchar(@TempPath[1])));
   If Length(TempPath) > 0 Then Begin
      If (TempPath[Length(TempPath)] <> '\') Then
         TempPath := TempPath + '\';
      TempIdx := 0;
      Repeat
         inc(TempIdx);
         Str(TempIdx, TempIdxStr);
         TempDir := TempPath + TempSub + TempIdxStr;
      Until Not DirectoryExists(TempDir);
      If CreateDirectory(pchar(TempDir), Nil) Then Try
         TempDir := TempDir + '\';
         ComFile := TempDir + ComName;
         DmpFile := TempDir + DmpName;
         If _RomDumpCodeToFile(ComFile) Then Try
            If _RomDumpCodeExecute(ComFile, DmpFile, Timeout) Then Begin
               DmpHandle := CreateFile(pchar(DmpFile), GENERIC_READ,
                  FILE_SHARE_READ Or FILE_SHARE_WRITE, Nil,
                  OPEN_EXISTING, 0, 0);
               If DmpHandle <> INVALID_HANDLE_VALUE Then Try
                  FillChar(Buffer, SizeOf(TRomBiosDump), 0);
                  result := ReadFile(DmpHandle, Buffer,
                     SizeOf(TRomBiosDump),
                     Written, Nil) And (Written =
                     SizeOf(TRomBiosDump));
               Finally
                  CloseHandle(DmpHandle);
               End;
            End;
         Finally
            DeleteFile(pchar(DmpFile));
            DeleteFile(pchar(ComFile));
         End;
      Finally
         RemoveDirectory(pchar(TempDir));
      End;
   End;
End;

{##############################################################################
#
# #
#                           DIRECT METHOD (Win9x) #
# #
# Due to the fact that Windows 95/98/ME maps the BIOS into every Win32 process
#
# for read access it is very simple to fill the buffer from memory. #
# #
###############################################################################
}

Function ReadRomBios9x(Var Buffer: TRomBiosDump): Boolean;
Begin
   result := false;
   Try
      FillChar(Buffer, SizeOf(TRomBiosDump), 0);
      Move(Pointer(Low(TRomBiosDump))^, Buffer, SizeOf(TRomBiosDump));
      result := true;
   Except
   // ignore exceptions
   End
End;

{##############################################################################
#
# #
#                       PHYSICAL MEMORY METHOD (WinNT) #
# #
# On Windows NT the ROM BIOS is only available through the named kernel object
#
# '\Device\PhysicalMemory'. Because it is impossible to open kernel objects in
#
# user mode with standard Win32 API functions we make use of NT's nativeAPI in
#
# NtDll.dll ("NT-Layer") namely ZwOpenSection. #
# #
# (note: mostly there are two versions of every function ZwXxx and NtXxx. The #
#  only difference in kernel mode is that the NtXxx version works in conside- #
#  ration to security while ZwXxx not. But in user mode both work like NtXxx.)
#
# #
# At first the section is opened with ZwOpenSection. Normally we would proceed
#
# ZwMapViewOfSection, ZwUnmapViewOfSection, and NtClose. But the functions are

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本色道久久综合亚洲91| 欧美高清在线精品一区| 久久婷婷色综合| 一区二区三区日韩欧美精品 | 久久这里只有精品视频网| 国产三级欧美三级日产三级99| 亚洲综合色成人| 成人小视频免费在线观看| 制服视频三区第一页精品| 亚洲欧美另类图片小说| 国产精品18久久久久久vr| 久久色在线观看| 日韩成人免费在线| 日本道精品一区二区三区 | 亚洲成a人v欧美综合天堂| 成人av电影在线观看| 精品免费99久久| 奇米在线7777在线精品 | 波多野结衣在线一区| 欧美大度的电影原声| 午夜精品爽啪视频| 欧洲国产伦久久久久久久| 亚洲色图清纯唯美| 成人app软件下载大全免费| 国产婷婷一区二区| 国产一区中文字幕| 欧美精品一区二区三区在线播放 | 亚洲国产成人午夜在线一区| 蜜乳av一区二区三区| 欧美精品第1页| 首页国产丝袜综合| 国产亚洲精品7777| 懂色av一区二区三区免费看| 久久午夜色播影院免费高清| 韩国在线一区二区| 国产欧美日韩不卡| 国产99久久精品| 中文字幕一区三区| 91麻豆蜜桃一区二区三区| 亚洲精品成人在线| 欧美日韩视频在线一区二区| 视频在线观看一区二区三区| 欧美一级免费观看| 国产自产视频一区二区三区| 国产无一区二区| 97久久精品人人澡人人爽| 亚洲欧美区自拍先锋| 欧美日韩在线三级| 乱一区二区av| 国产女人aaa级久久久级 | 亚洲婷婷综合色高清在线| 99国产一区二区三精品乱码| 一区二区免费看| 欧美一区二区三区婷婷月色| 极品少妇xxxx精品少妇偷拍| 国产精品免费视频一区| 色婷婷精品大在线视频| 五月婷婷久久丁香| 久久久亚洲精品一区二区三区| 不卡在线视频中文字幕| 亚洲小少妇裸体bbw| 欧美不卡一二三| 97久久精品人人爽人人爽蜜臀| 亚洲国产aⅴ天堂久久| 久久丝袜美腿综合| 91久久精品国产91性色tv| 九色porny丨国产精品| 国产精品久久久久国产精品日日| 欧美视频一区二区在线观看| 国模套图日韩精品一区二区| 综合色中文字幕| 欧美一区二区在线视频| av亚洲精华国产精华精华| 人禽交欧美网站| 亚洲精品一卡二卡| 久久精品无码一区二区三区 | 大白屁股一区二区视频| 亚洲v中文字幕| 国产精品美女久久福利网站| 欧美日韩一区二区三区四区| 国产福利视频一区二区三区| 日日夜夜一区二区| ...xxx性欧美| 久久一留热品黄| 欧美精品高清视频| 91精品91久久久中77777| 欧美日韩激情一区二区三区| 国产一区视频在线看| 亚洲第一久久影院| 中文字幕一区二区三区四区不卡| 日韩一卡二卡三卡四卡| 欧美亚洲国产一区在线观看网站| 国产精品综合二区| 伦理电影国产精品| 香蕉成人啪国产精品视频综合网| 国产精品黄色在线观看| 欧美精品一区二| 欧美一级日韩免费不卡| 欧美日韩午夜在线| 欧美日韩综合在线| 色综合久久久网| 91视频一区二区三区| 成人高清视频免费观看| 国产精品一区二区在线看| 美女视频黄 久久| 日本欧美一区二区三区乱码| 亚洲一区二区在线观看视频| 亚洲色欲色欲www| 中文字幕亚洲欧美在线不卡| 欧美极品另类videosde| 国产日韩欧美激情| 日本一区二区三区国色天香 | 日韩欧美的一区| 欧美一区二区三区男人的天堂| 欧美性色综合网| 欧美日韩国产中文| 欧美色国产精品| 欧美日韩免费在线视频| 欧美日韩精品一区二区三区 | 在线观看一区二区视频| 色www精品视频在线观看| 在线一区二区三区| 在线视频欧美区| 欧美性猛交一区二区三区精品| 欧美综合在线视频| 91精品国产日韩91久久久久久| 制服丝袜亚洲色图| 精品国产一区二区精华| 久久免费视频色| 国产精品沙发午睡系列990531| 亚洲欧洲av一区二区三区久久| 18成人在线视频| 亚洲一级二级在线| 蜜臀av性久久久久蜜臀aⅴ| 精品中文字幕一区二区小辣椒 | 欧美高清在线精品一区| 亚洲欧美日本韩国| 免费在线看一区| 国产伦精品一区二区三区免费 | 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 亚洲日本韩国一区| 日本伊人色综合网| 国产成人日日夜夜| 在线免费精品视频| 日韩精品一区二| 亚洲色图清纯唯美| 日韩黄色免费网站| 国产乱理伦片在线观看夜一区| 91在线小视频| 欧美一二三区在线观看| 国产精品无人区| 三级久久三级久久| 91在线国产观看| 3d动漫精品啪啪| 国产精品久久久久久久第一福利 | 欧美色倩网站大全免费| 久久五月婷婷丁香社区| 亚洲一区二区在线免费观看视频 | 色94色欧美sute亚洲线路二| 91精品麻豆日日躁夜夜躁| 国产精品三级视频| 青青草97国产精品免费观看 | 最新中文字幕一区二区三区| 首页国产欧美日韩丝袜| 99久久婷婷国产精品综合| 日韩你懂的电影在线观看| 亚洲六月丁香色婷婷综合久久| 久久99热国产| 欧美日韩国产精选| 亚洲精品免费视频| 国产白丝精品91爽爽久久| 91精品国产高清一区二区三区| 亚洲视频 欧洲视频| 高清久久久久久| 欧美精品一区二区三区蜜桃| 五月天国产精品| av在线综合网| 国产丝袜在线精品| 蜜桃视频第一区免费观看| 91成人免费电影| 1000精品久久久久久久久| 成人免费高清视频| 国产日韩欧美a| 国产一区二区精品久久99| 日韩三级高清在线| 午夜欧美大尺度福利影院在线看| a级精品国产片在线观看| 国产精品美女久久久久aⅴ国产馆| 久久99精品一区二区三区三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲国产精品国自产拍av| 国产精一品亚洲二区在线视频| 精品少妇一区二区三区在线视频| 欧美aaaaaa午夜精品| 欧美一区二区三区婷婷月色| 午夜久久久影院| 91精品国产综合久久婷婷香蕉| 亚洲国产aⅴ天堂久久| 欧美色成人综合| 日韩av电影免费观看高清完整版在线观看|