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

📄 aspi-win32.h

📁 刻录光盘的程序
💻 H
字号:
#ifndef __ASPI_WIN32_H_#define __ASPI_WIN32_H_#include <Windows.h>/*************************************************************************** ** SCSI MISCELLANEOUS EQUATES ***************************************************************************/#define SENSE_LEN                 14     /* Default sense buffer length    */#define SRB_DIR_SCSI              0x00   /* Direction determined by SCSI   */#define SRB_POSTING               0x01   /* Enable ASPI posting            */#define SRB_ENABLE_RESIDUAL_COUNT 0x04   /* Enable residual byte count     */                                         /* reporting                      */#define SRB_DIR_IN                0x08   /* Transfer from SCSI target to   */                                         /* host                           */#define SRB_DIR_OUT               0x10   /* Transfer from host to SCSI     */                                         /* target                         */#define SRB_EVENT_NOTIFY          0x40   /* Enable ASPI event notification */#define RESIDUAL_COUNT_SUPPORTED  0x02   /* Extended buffer flag           */#define MAX_SRB_TIMEOUT       1080001u   /* 30 hour maximum timeout in sec */#define DEFAULT_SRB_TIMEOUT   1080001u   /* use max.timeout by default     *//*************************************************************************** ** ASPI command definitions ***************************************************************************/#define SC_HA_INQUIRY             0x00   /* Host adapter inquiry           */#define SC_GET_DEV_TYPE           0x01   /* Get device type                */#define SC_EXEC_SCSI_CMD          0x02   /* Execute SCSI command           */#define SC_ABORT_SRB              0x03   /* Abort an SRB                   */#define SC_RESET_DEV              0x04   /* SCSI bus device reset          */#define SC_SET_HA_PARMS           0x05   /* Set HA parameters              */#define SC_GET_DISK_INFO          0x06   /* Get Disk                       */#define SC_RESCAN_SCSI_BUS        0x07   /* Rebuild SCSI device map        */#define SC_GETSET_TIMEOUTS        0x08   /* Get/Set target timeouts        *//*************************************************************************** ** SRB Status ***************************************************************************/#define SS_PENDING                0x00   /* SRB being processed            */#define SS_COMP                   0x01   /* SRB completed without error    */#define SS_ABORTED                0x02   /* SRB aborted                    */#define SS_ABORT_FAIL             0x03   /* Unable to abort SRB            */#define SS_ERR                    0x04   /* SRB completed with error       */#define SS_INVALID_CMD            0x80   /* Invalid ASPI command           */#define SS_INVALID_HA             0x81   /* Invalid host adapter number    */#define SS_NO_DEVICE              0x82   /* SCSI device not installed      */#define SS_INVALID_SRB            0xE0   /* Invalid parameter set in SRB   */#define SS_OLD_MANAGER            0xE1   /* ASPI manager doesn't support   */                                         /* windows                        */#define SS_BUFFER_ALIGN           0xE1   /* Buffer not aligned (replaces   */                                         /* SS_OLD_MANAGER in Win32)       */#define SS_ILLEGAL_MODE           0xE2   /* Unsupported Windows mode       */#define SS_NO_ASPI                0xE3   /* No ASPI managers               */#define SS_FAILED_INIT            0xE4   /* ASPI for windows failed init   */#define SS_ASPI_IS_BUSY           0xE5   /* No resources available to      */                                         /* execute command                */#define SS_BUFFER_TO_BIG          0xE6   /* Buffer size too big to handle  */#define SS_BUFFER_TOO_BIG         0xE6   /* Correct spelling of 'too'      */#define SS_MISMATCHED_COMPONENTS  0xE7   /* The DLLs/EXEs of ASPI don't    */                                         /* version check                  */#define SS_NO_ADAPTERS            0xE8   /* No host adapters to manager    */#define SS_INSUFFICIENT_RESOURCES 0xE9   /* Couldn't allocate resources    */                                         /* needed to init                 */#define SS_ASPI_IS_SHUTDOWN       0xEA   /* Call came to ASPI after        */                                         /* PROCESS_DETACH                 */#define SS_BAD_INSTALL            0xEB   /* The DLL or other components    */                                         /* are installed wrong            *//*************************************************************************** ** Host Adapter Status ***************************************************************************/#define HASTAT_OK                 0x00   /* No error detected by HA        */#define HASTAT_SEL_TO             0x11   /* Selection Timeout              */#define HASTAT_DO_DU              0x12   /* Data overrun/data underrun     */#define HASTAT_BUS_FREE           0x13   /* Unexpected bus free            */#define HASTAT_PHASE_ERR          0x14   /* Target bus phase sequence      */#define HASTAT_TIMEOUT            0x09   /* Timed out while SRB was        */                                         /* waiting to be processed        */#define HASTAT_COMMAND_TIMEOUT    0x0B   /* Adapter timed out while        */                                         /* processing SRB                 */#define HASTAT_MESSAGE_REJECT     0x0D   /* While processing the SRB, the  */                                         /* adapter received a MESSAGE     */#define HASTAT_BUS_RESET          0x0E   /* A bus reset was detected       */#define HASTAT_PARITY_ERROR       0x0F   /* A parity error was detected    */#define HASTAT_REQUEST_SENSE_FAILED 0x10 /* The adapter failed in issuing  *//*************************************************************************** ** SRB - HOST ADAPTER INQUIRIY - SC_HA_INQUIRY (0) ***************************************************************************/typedef struct {  BYTE     SRB_Cmd;           /* 00/000 ASPI command code == SC_HA_INQUIRY */  BYTE     SRB_Status;        /* 01/001 ASPI command status byte           */  BYTE     SRB_HaId;          /* 02/002 ASPI host adapter number           */  BYTE     SRB_Flags;         /* 03/003 ASPI request flags                 */  DWORD    SRB_Hdr_Rsvd;      /* 04/004 Reserved, must = 0                 */  BYTE     HA_Count;          /* 08/008 Number of host adapters present    */  BYTE     HA_SCSI_ID;        /* 09/009 SCSI ID of host adapter            */  BYTE     HA_ManagerId[16];  /* 0a/010 String describing the manager      */  BYTE     HA_Identifier[16]; /* 1a/026 String describing the host adapter */  BYTE     HA_Unique[16];     /* 2a/042 Host Adapter Unique parameters     */  WORD     HA_Rsvd1;          /* 3a/058 Reserved, must = 0                 */} PACKED SRB_HAInquiry, *PSRB_HAInquiry, FAR *LPSRB_HAInquiry;/*************************************************************************** ** SRB - GET DEVICE TYPE - SC_GET_DEV_TYPE (1) ***************************************************************************/typedef struct{  BYTE     SRB_Cmd;           /* 00/000 ASPI cmd code == SC_GET_DEV_TYPE   */  BYTE     SRB_Status;        /* 01/001 ASPI command status byte           */  BYTE     SRB_HaId;          /* 02/002 ASPI host adapter number           */  BYTE     SRB_Flags;         /* 03/003 Reserved, must = 0                 */  DWORD    SRB_Hdr_Rsvd;      /* 04/004 Reserved, must = 0                 */  BYTE     SRB_Target;        /* 08/008 Target's SCSI ID                   */  BYTE     SRB_Lun;           /* 09/009 Target's LUN number                */  BYTE     SRB_DeviceType;    /* 0a/010 Target's peripheral device type    */  BYTE     SRB_Rsvd1;         /* 0b/011 Reserved, must = 0                 */} PACKED SRB_GDEVBlock, *PSRB_GDEVBlock, FAR *LPSRB_GDEVBlock;/*************************************************************************** ** SRB - EXECUTE SCSI COMMAND - SC_EXEC_SCSI_CMD (2) ***************************************************************************/typedef struct{  BYTE     SRB_Cmd;           /* 00/000 ASPI cmd code == SC_EXEC_SCSI_CMD  */  BYTE     SRB_Status;        /* 01/001 ASPI command status byte           */  BYTE     SRB_HaId;          /* 02/002 ASPI host adapter number           */  BYTE     SRB_Flags;         /* 03/003 Reserved, must = 0                 */  DWORD    SRB_Hdr_Rsvd;      /* 04/004 Reserved, must = 0                 */  BYTE     SRB_Target;        /* 08/008 Target's SCSI ID                   */  BYTE     SRB_Lun;           /* 09/009 Target's LUN                       */  WORD     SRB_Rsvd1;         /* 0a/010 Reserved for alignment             */  DWORD    SRB_BufLen;        /* 0c/012 Data Allocation Length             */  BYTE FAR *SRB_BufPointer;   /* 10/016 Data Buffer Pointer                */  BYTE     SRB_SenseLen;      /* 14/020 Sense Allocation Length            */  BYTE     SRB_CDBLen;        /* 15/021 CDB Length                         */  BYTE     SRB_HaStat;        /* 16/022 Host Adapter Status                */  BYTE     SRB_TargStat;      /* 17/023 Target Status                      */  VOID FAR *SRB_PostProc;     /* 18/024 Post routine                       */  BYTE     SRB_Rsvd2[20];     /* 1c/028 Reserved, must = 0                 */  BYTE     CDBByte[16];       /* 30/048 SCSI CDB                           */  BYTE SenseArea[SENSE_LEN+2]; /* 40/064 Request Sense buffer              */} PACKED SRB_ExecSCSICmd, *PSRB_ExecSCSICmd, FAR *LPSRB_ExecSCSICmd;typedef struct{  BYTE     SRB_Cmd;           /* 00/000 ASPI cmd code == SC_ABORT_SRB      */  BYTE     SRB_Status;        /* 01/001 ASPI command status byte           */  BYTE     SRB_HaId;          /* 02/002 ASPI host adapter number           */  BYTE     SRB_Flags;         /* 03/003 Reserved, must = 0                 */  DWORD    SRB_Hdr_Rsvd;      /* 04/004 Reserved, must = 0                 */  void     *SRB_ToAbort;      /* 08/008 Pointer to SRB to abort            */} PACKED SRB_Abort, *PSRB_Abort, FAR *LPSRB_Abort;/*************************************************************************** ** SRB - BUS DEVICE RESET - SC_RESET_DEV (4) ***************************************************************************/typedef struct{  BYTE     SRB_Cmd;           /* 00/000 ASPI cmd code == SC_RESET_DEV      */  BYTE     SRB_Status;        /* 01/001 ASPI command status byte           */  BYTE     SRB_HaId;          /* 02/002 ASPI host adapter number           */  DWORD    SRB_Flags;	      /* 04/004 Reserved                           */  BYTE     SRB_Target;        /* 08/008 Target's SCSI ID                   */  BYTE     SRB_Lun;           /* 09/009 Target's LUN number                */  BYTE     SRB_Rsvd1[12];     /* 0A/010 Reserved for alignment             */  BYTE     SRB_HaStat;        /* 16/022 Host Adapter Status                */  BYTE     SRB_TargStat;      /* 17/023 Target Status                      */  VOID FAR *SRB_PostProc;     /* 18/024 Post routine                       */  BYTE     SRB_Rsvd2[36];     /* 1C/028 Reserved, must = 0                 */} SRB_BusDeviceReset, *PSRB_BusDeviceReset, FAR *LPSRB_BusDeviceReset;typedef struct tag_ASPI32BUFF{  PBYTE     AB_BufPointer;  DWORD     AB_BufLen;  DWORD     AB_ZeroFill;  DWORD     AB_Reserved;} PACKED ASPI32BUFF, *PASPI32BUFF, FAR *LPASPI32BUFF;typedef struct {  BYTE      SRB_Cmd;  BYTE      SRB_Status;  BYTE      SRB_HaId;  BYTE      SRB_Flags;  DWORD     SRB_Hdr_Rsvd;} SRB, *PSRB, FAR *LPSRB;#endif

⌨️ 快捷键说明

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