⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scsidefs.pas

📁 用于CD/DVD烧录的Delphi源码,包括source和demo
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit SCSIDefs;

{-----------------------------------------------------------------------------
 Unit Name: ScsiDEfs
 Author:    Sergey Kabikov
 Purpose:
 History:

 Added Definitions by Dancemammal  www.dancemammal.com

-----------------------------------------------------------------------------}

interface

uses windows, wnaspi32;

const

  //***************************************************************************
  //							%%% TARGET STATUS VALUES %%%
  //***************************************************************************

  STATUS_GOOD = $00; // Status Good
  STATUS_CHKCOND = $02; // Check Condition
  STATUS_CONDMET = $04; // Condition Met
  STATUS_BUSY = $08; // Busy
  STATUS_INTERM = $10; // Intermediate
  STATUS_INTCDMET = $14; // Intermediate-condition met
  STATUS_RESCONF = $18; // Reservation conflict
  STATUS_COMTERM = $22; // Command Terminated
  STATUS_QFULL = $28; // Queue full

  //***************************************************************************
  //						%%% SCSI MISCELLANEOUS EQUATES %%%
  //***************************************************************************

  MAXLUN = 7; // Maximum Logical Unit Id
  MAXTARG = 7; // Maximum Target Id
  MAX_SCSI_LUNS = 64; // Maximum Number of SCSI LUNs
  MAX_NUM_HA = 8; // Maximum Number of SCSI HA's

  //---------------------------------------------------------------------------
  //
  //							%%% SCSI COMMAND OPCODES %%%
  //
  //---------------------------------------------------------------------------

  //***************************************************************************
  //				 %%% Commands for all Device Types %%%
  //***************************************************************************

  SCSI_CHANGE_DEF = $40; // Change Definition (Optional)
  SCSI_COMPARE = $39; // Compare (O)
  SCSI_COPY = $18; // Copy (O)
  SCSI_COP_VERIFY = $3A; // Copy and Verify (O)
  SCSI_INQUIRY = $12; // Inquiry (MANDATORY)
  SCSI_LOG_SELECT = $4C; // Log Select (O)
  SCSI_LOG_SENSE = $4D; // Log Sense (O)
  SCSI_MODE_SEL6 = $15; // Mode Select 6-byte (Device Specific)
  SCSI_MODE_SEL10 = $55; // Mode Select 10-byte (Device Specific)
  SCSI_MODE_SEN6 = $1A; // Mode Sense 6-byte (Device Specific)
  SCSI_MODE_SEN10 = $5A; // Mode Sense 10-byte (Device Specific)
  SCSI_READ_BUFF = $3C; // Read Buffer (O)
  SCSI_REQ_SENSE = $03; // Request Sense (MANDATORY)
  SCSI_SEND_DIAG = $1D; // Send Diagnostic (O)
  SCSI_TST_U_RDY = $00; // Test Unit Ready (MANDATORY)
  SCSI_WRITE_BUFF = $3B; // Write Buffer (O)

  //***************************************************************************
  //			  %%% Commands Unique to Direct Access Devices %%%
  //***************************************************************************

  // SCSI_COMPARE	  =	 $39;		// Compare (O)
  SCSI_FORMAT = $04; // Format Unit (MANDATORY)
  SCSI_LCK_UN_CAC = $36; // Lock Unlock Cache (O)
  SCSI_PREFETCH = $34; // Prefetch (O)
  SCSI_MED_REMOVL = $1E; // Prevent/Allow medium Removal (O)
  SCSI_READ6 = $08; // Read 6-byte (MANDATORY)
  SCSI_READ10 = $28; // Read 10-byte (MANDATORY)
  SCSI_RD_CAPAC = $25; // Read Capacity (MANDATORY)
  SCSI_RD_DEFECT = $37; // Read Defect Data (O)
  SCSI_READ_LONG = $3E; // Read Long (O)
  SCSI_REASS_BLK = $07; // Reassign Blocks (O)
  SCSI_RCV_DIAG = $1C; // Receive Diagnostic Results (O)
  SCSI_RELEASE = $17; // Release Unit (MANDATORY)
  SCSI_REZERO = $01; // Rezero Unit (O)
  SCSI_SRCH_DAT_E = $31; // Search Data Equal (O)
  SCSI_SRCH_DAT_H = $30; // Search Data High (O)
  SCSI_SRCH_DAT_L = $32; // Search Data Low (O)
  SCSI_SEEK6 = $0B; // Seek 6-Byte (O)
  SCSI_SEEK10 = $2B; // Seek 10-Byte (O)
  // SCSI_SEND_DIAG   =      $1D;		// Send Diagnostics (MANDATORY)
  SCSI_SET_LIMIT = $33; // Set Limits (O)
  SCSI_START_STP = $1B; // Start/Stop Unit (O)
  SCSI_SYNC_CACHE = $35; // Synchronize Cache (O)
  SCSI_VERIFY = $2F; // Verify (O)
  SCSI_WRITE6 = $0A; // Write 6-Byte (MANDATORY)
  SCSI_WRITE10 = $2A; // Write 10-Byte (MANDATORY)
  SCSI_WRT_VERIFY = $2E; // Write and Verify (O)
  SCSI_WRITE_LONG = $3F; // Write Long (O)
  SCSI_WRITE_SAME = $41; // Write Same (O)
  SCSI_READ_BUFFER_CAP = $5C; // Read Buffer Capabilities
  SCSI_SEND_CUE_SHEET = $5D; // Send Cue Sheet


  //***************************************************************************
  //			%%% Commands for erase and close %%%
  //***************************************************************************

   //TRACK / SESSION CLOSE
  CLOSE_TRACK = $01;
  CLOSE_SESSION = $02;

  AC_BLANK = $A1;
  AC_CLOSETRACKSESSION = $5B;
  AC_SETCDSPEED = $BB;

  //DISK ERASE TYPES
  BLANK_DISC = $00;
  BLANK_MINIMAL = $01;
  BLANK_TRACK = $02;
  UN_RESERVE_TRACK = $03;
  BLANK_TRACK_TAIL = $04;
  UNCLOSE_LAST_SESSION = $05;
  ERASE_SESSION = $06;
  SESSION_FORMAT = $10;
  GROW_SESSION = $11;
  ADD_SESSION = $12;
  QUICK_GROW_LAST_SESSION = $13;
  QUICK_ADD_SESSION = $14;
  QUICK_SESSION_FORMAT = $15;
  MRW_FULL_FORMAT = $24;
  DVD_PLUS_RW_BASIC_FORMAT = $26;

  //WRITE TYPES
  PACKET_WRITE = $00;
  TRACK_AT_ONCE = $01;
  SESSION_AT_ONCE = $02;
  RAW_DATA = $03;

  //Track Modes
  CDR_MODE_AUDIO = $01;
  CDR_MODE_INCR_DATA = $01;
  CDR_MODE_ALLOW_COPY = $02;
  CDR_MODE_DATA = $04;
  CDR_MODE_QUAD_AUDIO = $08;
  CDR_MODE_DAO_96 = $3F;

  //SESSION TYPES
  CDROM_CDDA = $00;
  CDI_DISK = $01;
  CDROM_XA = $20;

  //DATA BLOCK TYPES
  RAW_DATA_BLOCK = $00;    // 2352 BYTES
  RAW_DATA_P_Q_SUB = $01;  // 2368 BYTES
  RAW_DATA_P_W_SUB = $02;  // 2448 BYTES
  RAW_DATA_P_W_SUB2 = $03; // 2448 BYTES
  MODE_1 = $08;            // 2048 BYTES
  MODE_2 = $09;            // 2336 BYTES
  MODE_2_XA_FORM_1 = $0A;  // 2048 BYTES
  MODE_2_XA_FORM_1_SUB = $0B; // 2056 BYTES
  MODE_2_XA_FORM_2 = $0C; // 2324 BYTES
  MODE_2_XA_FORM_2_SUB = $0D; // 2332 BYTES

  {SetCDSpeed}
  SCDS_MAXSPEED = $FFFF;
  SCDS_NONE = $00;

  //***************************************************************************
  //			%%% Commands Unique to Sequential Access Devices %%%
  //***************************************************************************

  SCSI_ERASE = $19; // Erase (MANDATORY)
  SCSI_LOAD_UN = $1B; // Load/Unload (O)
  SCSI_LOCATE = $2B; // Locate (O)
  SCSI_RD_BLK_LIM = $05; // Read Block Limits (MANDATORY)
  SCSI_READ_POS = $34; // Read Position (O)
  SCSI_READ_REV = $0F; // Read Reverse (O)
  SCSI_REC_BF_DAT = $14; // Recover Buffer Data (O)
  SCSI_RESERVE = $16; // Reserve Unit (MANDATORY)
  SCSI_REWIND = $01; // Rewind (MANDATORY)
  SCSI_SPACE = $11; // Space (MANDATORY)
  SCSI_VERIFY_T = $13; // Verify (Tape) (O)
  SCSI_WRT_FILE = $10; // Write Filemarks (MANDATORY)

  //***************************************************************************
  //				  %%% Commands Unique to Printer Devices %%%
  //***************************************************************************

  SCSI_PRINT = $0A; // Print (MANDATORY)
  SCSI_SLEW_PNT = $0B; // Slew and Print (O)
  SCSI_STOP_PNT = $1B; // Stop Print (O)
  SCSI_SYNC_BUFF = $10; // Synchronize Buffer (O)

  //***************************************************************************
  //				 %%% Commands Unique to Processor Devices %%%
  //***************************************************************************

  SCSI_RECEIVE = $08; // Receive (O)
  SCSI_SEND = $0A; // Send (O)

  //***************************************************************************
  //				%%% Commands Unique to Write-Once Devices %%%
  //***************************************************************************

  SCSI_MEDIUM_SCN = $38; // Medium Scan (O)
  SCSI_SRCHDATE10 = $31; // Search Data Equal 10-Byte (O)
  SCSI_SRCHDATE12 = $B1; // Search Data Equal 12-Byte (O)
  SCSI_SRCHDATH10 = $30; // Search Data High 10-Byte (O)
  SCSI_SRCHDATH12 = $B0; // Search Data High 12-Byte (O)
  SCSI_SRCHDATL10 = $32; // Search Data Low 10-Byte (O)
  SCSI_SRCHDATL12 = $B2; // Search Data Low 12-Byte (O)
  SCSI_SET_LIM_10 = $33; // Set Limits 10-Byte (O)
  SCSI_SET_LIM_12 = $B3; // Set Limits 10-Byte (O)
  SCSI_VERIFY10 = $2F; // Verify 10-Byte (O)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -