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

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

?? smart.pas

?? 檢測CPU信息和硬盤溫度,以及硬盤使用時間和IP地址的小軟件。
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit smart;

interface

uses
  windows;
// Miscellaneous
const
  MAX_IDE_DRIVES             = 4; // Max number of drives assuming primary/secondary, master/slave topology
  READ_ATTRIBUTE_BUFFER_SIZE = 512;
  IDENTIFY_BUFFER_SIZE	     = 512;
  READ_THRESHOLD_BUFFER_SIZE = 512;

//
// IOCTL commands
//
const
  DFP_GET_VERSION	 = $00074080;
  DFP_SEND_DRIVE_COMMAND = $0007c084;
  DFP_RECEIVE_DRIVE_DATA = $0007c088;

//---------------------------------------------------------------------
// GETVERSIONOUTPARAMS contains the data returned from the
// Get Driver Version function.
//---------------------------------------------------------------------
type
  GETVERSIONOUTPARAMS = packed record
    bVersion:  Byte;  // Binary driver version.
    bRevision: Byte;  // Binary driver revision.
    bReserved: Byte;  // Not used.
    bIDEDeviceMap: BYTE;  // Bit map of IDE devices.
    fCapabilities: DWORD; // Bit mask of driver capabilities.
    dwReserved: array [0..3] of DWORD; // For future use.
  end; {GETVERSIONOUTPARAMS}
  PGETVERSIONOUTPARAMS = ^GETVERSIONOUTPARAMS;

//
// Bits returned in the fCapabilities member of GETVERSIONOUTPARAMS
//
const
  CAP_IDE_ID_FUNCTION            = 1; // ATA ID command supported
  CAP_IDE_ATAPI_ID               = 2; // ATAPI ID command supported
  CAP_IDE_EXECUTE_SMART_FUNCTION = 4; // SMART commannds supported

//---------------------------------------------------------------------
// IDE registers
//---------------------------------------------------------------------
type
  IDEREGS = packed record
    bFeaturesReg: Byte;     // Used for specifying SMART "commands".
    bSectorCountReg: Byte;  // IDE sector count register
    bSectorNumberReg: Byte; // IDE sector number register
    bCylLowReg: Byte;       // IDE low order cylinder value
    bCylHighReg: Byte;      // IDE high order cylinder value
    bDriveHeadReg: Byte;    // IDE drive/head register
    bCommandReg: Byte;      // Actual IDE command.
    bReserved: Byte;        // reserved for future use.  Must be zero.
  end; {IDEREGS}
  PIDEREGS = ^IDEREGS;

//---------------------------------------------------------------------
// SENDCMDINPARAMS contains the input parameters for the
// Send Command to Drive function.
//---------------------------------------------------------------------
type
  SENDCMDINPARAMS = packed record
    cBufferSize:  DWORD;   // Buffer size in bytes
    irDriveRegs:  IDEREGS; // Structure with drive register values.
    bDriveNumber: Byte;    // Physical drive number to send
                           // command to (0,1,2,3).
    bReserved:  array [0..2] of Byte;  // Reserved for future expansion.
    dwReserved: array [0..3] of DWORD; // For future use.
    bBuffer:    array [0..0] of Byte;  // Input buffer.
  end; {SENDCMDINPARAMS}
  PSENDCMDINPARAMS = ^SENDCMDINPARAMS;

//
// Valid values for the bCommandReg member of IDEREGS.
//
const
  IDE_ATAPI_ID                = $A1; // Returns ID sector for ATAPI.
  IDE_ID_FUNCTION             = $EC; // Returns ID sector for ATA.
  IDE_EXECUTE_SMART_FUNCTION  = $B0; // Performs SMART cmd.
											// Requires valid bFeaturesReg,
											// bCylLowReg, and bCylHighReg
//
// Cylinder register values required when issuing SMART command
//
const
  SMART_CYL_LOW = $4F;
  SMART_CYL_HI  = $C2;

//---------------------------------------------------------------------
// Status returned from driver
//---------------------------------------------------------------------
type
  DRIVERSTATUS = packed record
    bDriverError: Byte; // Error code from driver,
		        // or 0 if no error.
    bIDEStatus: Byte;   // Contents of IDE Error register.
		        // Only valid when bDriverError
		        // is SMART_IDE_ERROR.
    bReserved: array [0..1] of Byte; // Reserved for future expansion.
    dwReserved: array [0..1] of DWORD; // Reserved for future expansion.
  end; {DRIVERSTATUS}
  PDRIVERSTATUS = ^DRIVERSTATUS;

//
// bDriverError values
//
const
  SMART_NO_ERROR         =  0; // No error
  SMART_IDE_ERROR        =  1; // Error from IDE controller
  SMART_INVALID_FLAG     =  2; // Invalid command flag
  SMART_INVALID_COMMAND  =  3; // Invalid command byte
  SMART_INVALID_BUFFER   =  4; // Bad buffer (null, invalid addr..)
  SMART_INVALID_DRIVE    =  5; // Drive number not valid
  SMART_INVALID_IOCTL    =  6; // Invalid IOCTL
  SMART_ERROR_NO_MEM     =  7; // Could not lock user's buffer
  SMART_INVALID_REGISTER =  8; // Some IDE Register not valid
  SMART_NOT_SUPPORTED    =  9; // Invalid cmd flag set
  SMART_NO_IDE_DEVICE    = 10; // Cmd issued to device not present
                               // although drive number is valid
// 11-255 reserved

//---------------------------------------------------------------------
// Structure returned by SMART IOCTL for several commands
//---------------------------------------------------------------------
type
  SENDCMDOUTPARAMS = packed record
    cBufferSize:  DWORD;          // Size of bBuffer in bytes
    DriverStatus: DRIVERSTATUS;   // Driver status structure.
    bBuffer: array [0..0] of Byte; // Buffer of arbitrary length in which to
                                   //  store the data read from the drive.
  end; {SENDCMDOUTPARAMS}
  PSENDCMDOUTPARAMS = ^SENDCMDOUTPARAMS;

//---------------------------------------------------------------------
// Feature register defines for SMART "sub commands"
//---------------------------------------------------------------------
const
  SMART_READ_ATTRIBUTE_VALUES             = $D0; // ATA4: Renamed
                                                 // SMART READ DATA
  SMART_READ_ATTRIBUTE_THRESHOLDS         = $D1; // Obsoleted in ATA4!
  SMART_ENABLE_DISABLE_ATTRIBUTE_AUTOSAVE = $D2;
  SMART_SAVE_ATTRIBUTE_VALUES             = $D3;
  SMART_EXECUTE_OFFLINE_IMMEDIATE         = $D4; // ATA4
                                                 // Vendor specific commands:
  SMART_ENABLE_SMART_OPERATIONS           = $D8;
  SMART_DISABLE_SMART_OPERATIONS          = $D9;
  SMART_RETURN_SMART_STATUS               = $DA;

//---------------------------------------------------------------------
// The following structure defines the structure of a Drive Attribute
//---------------------------------------------------------------------
type
  DRIVEATTRIBUTE = packed record
    bAttrID:      Byte; // Identifies which attribute
    wStatusFlags: Word;	// see bit definitions below
    bAttrValue:   Byte; // Current normalized value
    bWorstValue:  Byte; // How bad has it ever been?
    bRawValue: array [0..5] of Byte; // Un-normalized value
    bReserved:    Byte; // ...
  end; {DRIVEATTRIBUTE}
  PDRIVEATTRIBUTE = ^DRIVEATTRIBUTE;

//---------------------------------------------------------------------
// The following structure defines the structure of a Warranty Threshold
// Obsoleted in ATA4!
//---------------------------------------------------------------------
type
  ATTRTHRESHOLD = packed record
    bAttrID: Byte;            // Identifies which attribute
    bWarrantyThreshold: Byte; // Triggering value
    bReserved: array [0..9] of Byte; // ...
  end; {ATTRTHRESHOLD}
  PATTRTHRESHOLD = ^ATTRTHRESHOLD;

//---------------------------------------------------------------------
// The following struct defines the interesting part of the IDENTIFY
// buffer:
//---------------------------------------------------------------------
type
  USHORT = Word;
  
  IDSECTOR = packed record
    wGenConfig: USHORT;
    wNumCyls:   USHORT;
    wReserved:  USHORT;
    wNumHeads:  USHORT;
    wBytesPerTrack:   USHORT;
    wBytesPerSector:  USHORT;
    wSectorsPerTrack: USHORT;
    wVendorUnique: array [0..2] of USHORT;
    sSerialNumber: array [0..19] of Char;
//    sSerialNumber: string [20];
    wBufferType:   USHORT;
    wBufferSize:   USHORT;
    wECCSize:      USHORT;
    sFirmwareRev:  array [0..7] of CHAR;
//    sFirmwareRev:  string [8];
    sModelNumber:  array [0..39] of CHAR;
//    sModelNumber:  string [40];

    wMoreVendorUnique: USHORT;
    wDoubleWordIO: USHORT;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩久久| 欧美国产日本视频| 成人一区二区三区| 国产主播一区二区| 国内精品伊人久久久久av一坑| 亚洲一区二区av在线| 亚洲国产精品久久不卡毛片| 夜夜嗨av一区二区三区中文字幕| 国产精品理论片| 日韩一区在线播放| 亚洲综合偷拍欧美一区色| 亚洲一区二区三区精品在线| 亚洲永久免费视频| 石原莉奈在线亚洲二区| 久久国产生活片100| 国产资源精品在线观看| 成人一区在线观看| 欧美三片在线视频观看| 欧美人动与zoxxxx乱| 日韩欧美一区中文| 国产亚洲成年网址在线观看| 国产精品久久久久久久久久免费看 | 26uuu亚洲综合色欧美| 久久欧美一区二区| 亚洲精品成人在线| 青青草97国产精品免费观看| 国产福利视频一区二区三区| 色综合天天综合色综合av| 欧美色成人综合| 久久九九99视频| 亚洲黄色片在线观看| 久久精品久久久精品美女| 成人免费看片app下载| 欧美精品在线一区二区三区| 精品国产伦一区二区三区观看方式| 国产日韩欧美高清| 日韩成人一级片| 91丨九色丨黑人外教| 日韩欧美一二区| 艳妇臀荡乳欲伦亚洲一区| 极品少妇xxxx精品少妇偷拍| 99久久久精品免费观看国产蜜| 在线综合视频播放| 亚洲美女视频在线观看| 美女网站色91| 欧美情侣在线播放| 亚洲男女一区二区三区| 精品在线免费视频| 欧美日韩免费不卡视频一区二区三区| 国产午夜精品福利| 精品一区二区成人精品| 欧美在线视频全部完| 国产精品美女久久久久av爽李琼| 日韩中文字幕亚洲一区二区va在线 | 精品成人免费观看| 亚洲一区二区精品3399| 97精品电影院| 中文字幕一区二区三区乱码在线| 狠狠色丁香婷综合久久| 日韩欧美在线影院| 日韩福利视频导航| 欧美三级电影网| 一区二区三区中文字幕电影| 91碰在线视频| 成人欧美一区二区三区小说| 国产成人综合视频| 久久欧美一区二区| 国产乱对白刺激视频不卡| 欧美sm极限捆绑bd| 国产91精品精华液一区二区三区| 欧美电影影音先锋| 欧美aⅴ一区二区三区视频| 欧美老女人第四色| 日日摸夜夜添夜夜添国产精品| 欧美伊人久久久久久久久影院| 一区二区三区在线观看视频 | 亚洲18女电影在线观看| 在线观看免费视频综合| 亚洲午夜一区二区| 欧美日韩一区二区三区在线看| 亚洲成年人网站在线观看| 欧美男男青年gay1069videost| 亚洲一卡二卡三卡四卡 | 蜜乳av一区二区| 欧美成人a视频| 国产一区在线看| 18成人在线观看| 欧美视频三区在线播放| 日本欧美一区二区在线观看| 日韩欧美高清一区| 国产精品亚洲成人| 自拍偷拍国产亚洲| 欧美男生操女生| 激情国产一区二区 | 欧美久久一二三四区| 美国欧美日韩国产在线播放| 久久嫩草精品久久久精品| 成人国产电影网| 午夜电影一区二区三区| 久久免费午夜影院| 91黄色激情网站| 久久国内精品视频| ...xxx性欧美| 欧美一级理论性理论a| 国产黑丝在线一区二区三区| 亚洲品质自拍视频| 精品国产乱码久久| 91视频你懂的| 久久91精品久久久久久秒播| 中文字幕综合网| 欧美成人艳星乳罩| 91色在线porny| 久久国产精品99久久久久久老狼| 中文字幕亚洲一区二区va在线| 欧美午夜电影网| 成人h动漫精品一区二区| 免费精品视频在线| 亚洲乱码国产乱码精品精的特点| 6080国产精品一区二区| aaa国产一区| 国产一区在线精品| 日韩高清一级片| 一区二区三区四区乱视频| 久久综合九色综合97_久久久| 91国偷自产一区二区三区观看| 国产真实乱子伦精品视频| 亚洲精品视频在线观看网站| 久久免费视频色| 日韩欧美一区二区视频| 欧美综合在线视频| 99精品欧美一区二区蜜桃免费| 国模大尺度一区二区三区| 亚洲高清一区二区三区| 成人欧美一区二区三区白人 | 久久av老司机精品网站导航| 亚洲日本一区二区三区| 国产欧美视频一区二区三区| 91精品国模一区二区三区| 欧美日韩亚洲高清一区二区| 97精品久久久久中文字幕| 成人在线一区二区三区| 国产**成人网毛片九色| 国产精品一二三四区| 韩国女主播成人在线| 另类小说图片综合网| 日韩国产高清在线| 天天影视色香欲综合网老头| 亚洲成人av电影在线| 亚洲国产日韩a在线播放| 亚洲免费伊人电影| 一区二区不卡在线播放 | 久久久久久久久久看片| 欧美tickling网站挠脚心| 精品伦理精品一区| 精品国产乱码久久久久久老虎 | 国产精品久99| 亚洲色图视频网| 亚洲欧美精品午睡沙发| 樱花草国产18久久久久| 亚洲国产一二三| 日韩国产在线观看| 黄色日韩网站视频| 99久久精品一区二区| 在线视频一区二区三| 6080午夜不卡| 久久蜜桃av一区精品变态类天堂| 久久婷婷国产综合精品青草 | 欧美日韩成人一区| 日韩一区二区影院| 国产欧美精品一区aⅴ影院 | 欧美在线999| 91精品国产欧美日韩| 久久综合久久综合九色| 国产精品女同一区二区三区| 伊人色综合久久天天| 五月天中文字幕一区二区| 免费av网站大全久久| 国产白丝网站精品污在线入口| 91在线视频18| 日韩免费观看高清完整版| 日韩一区在线免费观看| 石原莉奈一区二区三区在线观看| 极品少妇xxxx精品少妇偷拍| 97精品国产97久久久久久久久久久久| 欧美美女喷水视频| 欧美经典三级视频一区二区三区| 亚洲女同ⅹxx女同tv| 国产一区二区三区日韩| 欧美在线free| 日本一区二区三区国色天香| 亚洲午夜在线视频| 成人黄色777网| 91麻豆精品国产自产在线| 国产亲近乱来精品视频| 亚洲资源在线观看| 国产成人av电影在线| 91精品国产色综合久久ai换脸| 国产精品萝li| 国内精品第一页| 欧美精品日韩一区|