123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410 |
- #ifndef ASPI_INCLUDED
- #define ASPI_INCLUDED
- #include <Windows.h>
- #include <Stdio.h>
- #include <Stdlib.h>
- extern HINSTANCE hAspiLib;
- void GetAspiError(int nErrorCode,LPSTR lpszError);
- #pragma pack(push,1)
- #define MAX_SCSIDEVICES 16
- #define TIMEOUT 10000
- typedef void (*POSTPROCFUNC)();
- typedef struct TOC_TAG
- {
- BYTE _reserved1;
- BYTE bFlags;
- BYTE bTrack;
- BYTE _reserved2;
- DWORD dwStartSector;
- } TOC;
- #define SRB_POSTING 0x01
- #define SRB_ENABLE_RESIDUAL_COUNT 0x04
- #define SRB_DIR_IN 0x08
- #define SRB_DIR_OUT 0x10
- #define SRB_EVENT_NOTIFY 0x40
- #define DTC_DISK 0x00
- #define DTC_TAPE 0x01
- #define DTC_PRINTER 0x02
- #define DTC_PROCESSOR 0x03
- #define DTC_WORM 0x04
- #define DTC_CDROM 0x05
- #define DTC_SCANNER 0x06
- #define DTC_OPTICAL 0x07
- #define DTC_JUKEBOX 0x08
- #define DTC_COMM 0x09
- #define DTC_PREPRESS1 0x0A
- #define DTC_PREPRESS2 0x0B
- #define DTC_UNKNOWN 0x1F
- #define SS_PENDING 0x00
- #define SS_COMP 0x01
- #define SS_ABORTED 0x02
- #define SS_ABORT_FAIL 0x03
- #define SS_ERR 0x04
- #define SS_INVALID_CMD 0x80
- #define SS_INVALID_HA 0x81
- #define SS_NO_DEVICE 0x82
- #define SS_INVALID_SRB 0xE0
- #define SS_OLD_MANAGER 0xE1
-
- #define SS_BUFFER_ALIGN 0xE1
-
- #define SS_ILLEGAL_MODE 0xE2
- #define SS_NO_ASPI 0xE3
- #define SS_FAILED_INIT 0xE4
- #define SS_ASPI_IS_BUSY 0xE5
-
- #define SS_BUFFER_TO_BIG 0xE6
- #define SS_BUFFER_TOO_BIG 0xE6
- #define SS_MISMATCHED_COMPONENTS 0xE7
-
- #define SS_NO_ADAPTERS 0xE8
- #define SS_INSUFFICIENT_RESOURCES 0xE9
-
- #define SS_ASPI_IS_SHUTDOWN 0xEA
-
- #define SS_BAD_INSTALL 0xEB
-
- #define SC_HA_INQUIRY 0x00
- #define SC_GET_DEV_TYPE 0x01
- #define SC_EXEC_SCSI_CMD 0x02
- #define SC_ABORT_SRB 0x03
- #define SC_RESET_DEV 0x04
- #define SC_GET_DISK_INFO 0x06
- #define SC_GETSET_TIMEOUTS 0x08
- #define CDSAMPLEFREQ 44100
- #define TRACKSPERSEC 75
- #define CB_CDDASECTOR 2352
- #define CB_QSUBCHANNEL 0
- #define CB_CDROMSECTOR 2048
- #define CB_AUDIO (CB_CDDASECTOR-CB_QSUBCHANNEL)
- typedef struct
- {
- BYTE SRB_Cmd;
- BYTE SRB_Status;
- BYTE SRB_HaId;
- BYTE SRB_Flags;
- DWORD SRB_Hdr_Rsvd;
- } SRB_HEADER, *LPSRB;
- typedef struct
- {
- BYTE SRB_Cmd;
- BYTE SRB_Status;
- BYTE SRB_HaId;
- BYTE SRB_Flags;
- DWORD SRB_Hdr_Rsvd;
- BYTE HA_Count;
- BYTE HA_SCSI_ID;
- BYTE HA_ManagerId[16];
- BYTE HA_Identifier[16];
- BYTE HA_Unique[16];
- WORD HA_Rsvd1;
- } SRB_HAINQUIRY, *LPSRB_HAINQUIRY;
- typedef struct
- {
- BYTE SRB_Cmd;
- BYTE SRB_Status;
- BYTE SRB_HaId;
- BYTE SRB_Flags;
- DWORD SRB_Hdr_Rsvd;
- BYTE SRB_Target;
- BYTE SRB_Lun;
- BYTE SRB_DeviceType;
- BYTE SRB_Rsvd1;
- } SRB_GDEVBLOCK, *LPSRB_GDEVBLOCK;
- #define SENSE_LEN 14
- typedef struct
- {
- BYTE SRB_Cmd;
- BYTE SRB_Status;
- BYTE SRB_HaId;
- BYTE SRB_Flags;
- DWORD SRB_Hdr_Rsvd;
- BYTE SRB_Target;
- BYTE SRB_Lun;
- WORD SRB_Rsvd1;
- DWORD SRB_BufLen;
- BYTE *SRB_BufPointer;
- BYTE SRB_SenseLen;
- BYTE SRB_CDBLen;
- BYTE SRB_HaStat;
- BYTE SRB_TargStat;
- void (*SRB_PostProc)();
- void *SRB_Rsvd2;
- BYTE SRB_Rsvd3[16];
- BYTE CDBByte[16];
- BYTE SenseArea[SENSE_LEN+2];
- } SRB_EXECSCSICMD, *LPSRB_EXECSCSICMD;
- typedef struct
- {
- BYTE SRB_Cmd;
- BYTE SRB_Status;
- BYTE SRB_HaId;
- BYTE SRB_Flags;
- DWORD SRB_Hdr_Rsvd;
- BYTE SRB_Target;
- BYTE SRB_Lun;
- BYTE SRB_DriveFlags;
- BYTE SRB_Int13HDriveInfo;
- BYTE SRB_Heads;
- BYTE SRB_Sectors;
- BYTE SRB_Rsvd1[10];
- } SRB_GETDISKINFO, *LPSRB_GETDISKINFO;
- typedef struct
- {
- BYTE SRB_Cmd;
- BYTE SRB_Status;
- BYTE SRB_HaId;
- BYTE SRB_Flags;
- DWORD SRB_Hdr_Rsvd;
- BYTE SRB_Target;
- BYTE SRB_Lun;
- BYTE SRB_Rsvd1[12];
- BYTE SRB_HaStat;
- BYTE SRB_TargStat;
- void *SRB_PostProc;
- void *SRB_Rsvd2;
- BYTE SRB_Rsvd3[32];
- } SRB_BUSDEVICERESET, *LPSRB_BUSDEVICERESET;
- typedef struct
- {
- BYTE SRB_Cmd;
- BYTE SRB_Status;
- BYTE SRB_HaID;
- BYTE SRB_Flags;
- DWORD SRB_Hdr_Rsvd;
- void *SRB_ToAbort;
- } SRB_Abort, *PSRB_Abort, FAR *LPSRB_Abort;
- typedef unsigned char Ucbit;
- typedef unsigned char u_char;
- #define MP_P_CODE \
- Ucbit p_code : 6; \
- Ucbit p_res : 1; \
- Ucbit parsave : 1
- typedef struct SCSICDMODEPAGE2A_TAG
- {
- MP_P_CODE;
- u_char p_len;
- Ucbit cd_r_read : 1;
- Ucbit cd_rw_read : 1;
- Ucbit method2 : 1;
- Ucbit dvd_rom_read: 1;
- Ucbit dvd_r_read : 1;
- Ucbit dvd_ram_read: 1;
- Ucbit res_2_67 : 2;
- Ucbit cd_r_write : 1;
- Ucbit cd_rw_write : 1;
- Ucbit test_write : 1;
- Ucbit res_3_3 : 1;
- Ucbit dvd_r_write : 1;
- Ucbit dvd_ram_write: 1;
- Ucbit res_3_67 : 2;
- Ucbit audio_play : 1;
- Ucbit composite : 1;
- Ucbit digital_port_2: 1;
- Ucbit digital_port_1: 1;
- Ucbit mode_2_form_1: 1;
- Ucbit mode_2_form_2: 1;
- Ucbit multi_session: 1;
- Ucbit res_4 : 1;
- Ucbit cd_da_supported: 1;
- Ucbit cd_da_accurate: 1;
- Ucbit rw_supported: 1;
- Ucbit rw_deint_cor: 1;
- Ucbit c2_pointers : 1;
- Ucbit ISRC : 1;
- Ucbit UPC : 1;
- Ucbit read_bar_code: 1;
- Ucbit lock : 1;
- Ucbit lock_state : 1;
- Ucbit prevent_jumper: 1;
- Ucbit eject : 1;
- Ucbit res_6_4 : 1;
- Ucbit loading_type: 3;
- Ucbit sep_chan_vol: 1;
- Ucbit sep_chan_mute: 1;
- Ucbit disk_present_rep:1;
- Ucbit sw_slot_sel:1;
- Ucbit res_7 : 4;
- BYTE ReadSpeedH;
- BYTE ReadSpeedL;
- u_char num_vol_levels[2];
- u_char buffer_size[2];
- u_char cur_read_speed[2];
- u_char res_16;
-
- Ucbit res_17_0: 1;
- Ucbit BCK : 1;
- Ucbit RCK : 1;
- Ucbit LSBF : 1;
- Ucbit length : 2;
- Ucbit res_17 : 2;
-
- u_char max_write_speed[2];
- u_char cur_write_speed[2];
- } SCSICDMODEPAGE2A;
- char *fillbytes(void *tov, int cnt, char val);
- typedef struct SCISMODEHEADER_TAG {
- Ucbit sense_data_len : 8;
- u_char medium_type;
- Ucbit res2 : 4;
- Ucbit cache : 1;
- Ucbit res : 2;
- Ucbit write_prot : 1;
- BYTE nBlockLen;
- } SCISMODEHEADER;
- typedef struct SCSIMODEHDR_6_TAG {
- BYTE btModeDataLen;
- BYTE btMediumType;
- BYTE btDevSpecificParam;
- BYTE btBlkDescrLen;
- } SCSIMODEHDR_6;
- typedef struct SCSIMODEHDR_10_TAG {
- BYTE btModeDataLenH;
- BYTE btModeDataLenL;
- BYTE btMediumType;
- BYTE btDevSpecificParam;
- BYTE btReserved1;
- BYTE btReserved2;
- BYTE btBlkDescrLenH;
- BYTE btBlkDescrLenL;
- } SCSIMODEHDR_10;
- typedef struct SCSIBLOCKDESCRIPTOR_TAG {
- BYTE btDensity;
- BYTE btNumberOfBlocksH;
- BYTE btNumberOfBlocksM;
- BYTE btNumberOfBlocksL;
- BYTE btReserved;
- BYTE btBlockLenH;
- BYTE btBlockLenM;
- BYTE btBlockLenL;
- } SCSIBLOCKDESCRIPTOR;
- typedef struct SCSICDMODEPAGE1A_TAG{
- MP_P_CODE;
- u_char p_len;
- Ucbit disa_correction : 1;
- Ucbit term_on_rec_err : 1;
- Ucbit report_rec_err : 1;
- Ucbit en_early_corr : 1;
- Ucbit read_continuous : 1;
- Ucbit tranfer_block : 1;
- Ucbit en_auto_reall_r : 1;
- Ucbit en_auto_reall_w : 1;
- u_char rd_retry_count;
- u_char correction_span;
- char head_offset_count;
- char data_strobe_offset;
- u_char res;
- u_char wr_retry_count;
- u_char res_tape[2];
- u_char recov_timelim[2];
- } SCSICDMODEPAGE1A;
- typedef struct
- {
- BYTE SRB_Cmd;
- BYTE SRB_Status;
- BYTE SRB_HaId;
- BYTE SRB_Flags;
- DWORD SRB_Hdr_Rsvd;
- BYTE SRB_Target;
- BYTE SRB_Lun;
- DWORD SRB_Timeout;
- }
- SRB_GetSetTimeouts, *PSRB_GetSetTimeouts;
- typedef struct
- {
- LPBYTE AB_BufPointer;
- DWORD AB_BufLen;
- DWORD AB_ZeroFill;
- DWORD AB_Reserved;
- }
- ASPI32BUFF, *PASPI32BUFF;
- #pragma pack(pop)
- #endif
|