Changeset 8599 for trunk/include


Ignore:
Timestamp:
Jun 8, 2002, 1:39:18 PM (23 years ago)
Author:
sandervl
Message:

update

Location:
trunk/include/win
Files:
1 deleted
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/win/wnaspi32.h

    r938 r8599  
    1 /* $Id: wnaspi32.h,v 1.2 1999-09-15 11:28:13 phaller Exp $ */
    21
    32#if !defined(WNASPI32_H)
    43#define WNASPI32_H
    54
     5/* SCSI Miscellaneous Stuff */
     6#define SENSE_LEN                               14
     7#define SRB_DIR_SCSI                        0x00
     8#define SRB_POSTING                             0x01
     9#define SRB_ENABLE_RESIDUAL_COUNT       0x04
     10#define SRB_DIR_IN                              0x08
     11#define SRB_DIR_OUT                             0x10
     12
     13/* ASPI Command Definitions */
     14#define SC_HA_INQUIRY                   0x00
     15#define SC_GET_DEV_TYPE                 0x01
     16#define SC_EXEC_SCSI_CMD                0x02
     17#define SC_ABORT_SRB                    0x03
     18#define SC_RESET_DEV                    0x04
     19#define SC_SET_HA_PARMS                 0x05
     20#define SC_GET_DISK_INFO                0x06
     21
     22/* SRB status codes */
     23#define SS_PENDING                      0x00
     24#define SS_COMP                         0x01
     25#define SS_ABORTED                      0x02
     26#define SS_ABORT_FAIL                   0x03
     27#define SS_ERR                          0x04
     28
     29#define SS_INVALID_CMD                  0x80
     30#define SS_INVALID_HA                   0x81
     31#define SS_NO_DEVICE                    0x82
     32
     33#define SS_INVALID_SRB                  0xE0
     34#define SS_OLD_MANAGER                  0xE1
     35#define SS_BUFFER_ALIGN                 0xE1 // Win32
     36#define SS_ILLEGAL_MODE                 0xE2
     37#define SS_NO_ASPI                      0xE3
     38#define SS_FAILED_INIT                  0xE4
     39#define SS_ASPI_IS_BUSY                 0xE5
     40#define SS_BUFFER_TO_BIG                0xE6
     41#define SS_MISMATCHED_COMPONENTS        0xE7 // DLLs/EXE version mismatch
     42#define SS_NO_ADAPTERS                  0xE8
     43#define SS_INSUFFICIENT_RESOURCES       0xE9
     44#define SS_ASPI_IS_SHUTDOWN             0xEA
     45#define SS_BAD_INSTALL                  0xEB
     46
     47
     48/* Host status codes */
     49#define HASTAT_OK                       0x00
     50#define HASTAT_SEL_TO                   0x11
     51#define HASTAT_DO_DU                    0x12
     52#define HASTAT_BUS_FREE                 0x13
     53#define HASTAT_PHASE_ERR                0x14
     54
     55#define HASTAT_TIMEOUT                  0x09
     56#define HASTAT_COMMAND_TIMEOUT          0x0B
     57#define HASTAT_MESSAGE_REJECT           0x0D
     58#define HASTAT_BUS_RESET                0x0E
     59#define HASTAT_PARITY_ERROR             0x0F
     60#define HASTAT_REQUEST_SENSE_FAILED     0x10
     61
     62
     63/* Additional definitions */
     64/* SCSI Miscellaneous Stuff */
     65#define SRB_EVENT_NOTIFY                0x40
     66#define RESIDUAL_COUNT_SUPPORTED        0x02
     67#define MAX_SRB_TIMEOUT                 1080001u
     68#define DEFAULT_SRB_TIMEOUT             1080001u
     69
     70/* These are defined by MS but not adaptec */
     71#define SRB_DATA_SG_LIST                0x02
     72#define WM_ASPIPOST                     0x4D42
     73
     74
     75/* ASPI Command Definitions */
     76#define SC_RESCAN_SCSI_BUS              0x07
     77#define SC_GETSET_TIMEOUTS              0x08
     78
     79/* SRB Status.. MS defined */
     80#define SS_SECURITY_VIOLATION           0xE2 // Replaces SS_INVALID_MODE
     81
     82
     83
     84//     0:      'Direct-access device (e.g., magnetic disk)';
     85//     1:      'Sequential-access device (e.g., magnetic tape)';
     86//     2:      'Printer device';
     87//     3:      'Processor device';
     88//     4:      'Write-once device (e.g., some optical disks)';
     89//     5:      'CD-ROM device';
     90//     6:      'Scanner device';
     91//     7:      'Optical memory device (e.g., some optical disks)';
     92//     8:      'Medium Changer device (e.g., jukeboxes)';
     93//     9:      'Communications device';
     94//     10..11: 'Defined by ASC IT8 (Graphic Arts Pre-Press Devices)';
     95//     12..30: 'Reserved';
     96//     31:     'Unknown or no device type';
     97#define SS_DEVTYPE_DIRECTACCESS         0
     98#define SS_DEVTYPE_SEQUENTIAL           1
     99#define SS_DEVTYPE_PRINTER              2
     100#define SS_DEVTYPE_PROCESSOR            3
     101#define SS_DEVTYPE_WRITEONCE            4
     102#define SS_DEVTYPE_CDROM                5
     103#define SS_DEVTYPE_SCANNER              6
     104#define SS_DEVTYPE_OPTICALMEMORY        7
     105#define SS_DEVTYPE_MEDIUMCHANGER        8
     106#define SS_DEVTYPE_COMMUNICATION        9
     107
     108/*** END DEFS */
     109
    6110#include "pshpack1.h"
    7111
    8 typedef union SRB * LPSRB;
    9 
    10 typedef struct tagSRB_HaInquiry {
    11  BYTE  SRB_Cmd;                 /* ASPI command code = SC_HA_INQUIRY */
    12  BYTE  SRB_Status;              /* ASPI command status byte */
    13  BYTE  SRB_HaId;                /* ASPI host adapter number */
    14  BYTE  SRB_Flags;               /* ASPI request flags */
    15  DWORD  SRB_Hdr_Rsvd;           /* Reserved, MUST = 0 */
    16  BYTE  HA_Count;                /* Number of host adapters present */
    17  BYTE  HA_SCSI_ID;              /* SCSI ID of host adapter */
    18  BYTE  HA_ManagerId[16];        /* String describing the manager */
    19  BYTE  HA_Identifier[16];       /* String describing the host adapter */
    20  BYTE  HA_Unique[16];           /* Host Adapter Unique parameters */
     112/* SRB - HOST ADAPTER INQUIRY - SC_HA_INQUIRY */
     113typedef struct tagSRB32_HaInquiry {
     114 BYTE  SRB_Cmd;                 /* 00 ASPI command code = SC_HA_INQUIRY */
     115 BYTE  SRB_Status;              /* 01 ASPI command status byte */
     116 BYTE  SRB_HaId;                /* 02 ASPI host adapter number */
     117 BYTE  SRB_Flags;               /* 03 ASPI request flags */
     118 DWORD  SRB_Hdr_Rsvd;           /* 04 Reserved, MUST = 0 */
     119 BYTE  HA_Count;                /* 08 Number of host adapters present */
     120 BYTE  HA_SCSI_ID;              /* 09 SCSI ID of host adapter */
     121 BYTE  HA_ManagerId[16];        /* 0A String describing the manager */
     122 BYTE  HA_Identifier[16];       /* 1A String describing the host adapter */
     123 BYTE  HA_Unique[16];           /* 2A Host Adapter Unique parameters */
    21124 WORD  HA_Rsvd1;
    22 } SRB_HaInquiry WINE_PACKED;
    23 
    24 typedef struct tagSRB_ExecSCSICmd {
    25   BYTE        SRB_Cmd;            /* ASPI command code = SC_EXEC_SCSI_CMD */
    26   BYTE        SRB_Status;         /* ASPI command status byte */
    27   BYTE        SRB_HaId;           /* ASPI host adapter number */
    28   BYTE        SRB_Flags;          /* ASPI request flags */
    29   DWORD       SRB_Hdr_Rsvd;       /* Reserved */
    30   BYTE        SRB_Target;         /* Target's SCSI ID */
    31   BYTE        SRB_Lun;            /* Target's LUN number */
    32   WORD        SRB_Rsvd1;          /* Reserved for Alignment */
    33   DWORD       SRB_BufLen;         /* Data Allocation Length */
    34   BYTE        *SRB_BufPointer;    /* Data Buffer Point */
    35   BYTE        SRB_SenseLen;       /* Sense Allocation Length */
    36   BYTE        SRB_CDBLen;         /* CDB Length */
    37   BYTE        SRB_HaStat;         /* Host Adapter Status */
    38   BYTE        SRB_TargStat;       /* Target Status */
    39   void        (*SRB_PostProc)();  /* Post routine */
    40   void        *SRB_Rsvd2;         /* Reserved */
    41   BYTE        SRB_Rsvd3[16];      /* Reserved for expansion */
    42   BYTE        CDBByte[16];        /* SCSI CDB */
    43   BYTE        SenseArea[1];       /* Request sense buffer - var length */
    44 } SRB_ExecSCSICmd WINE_PACKED;
    45 
    46 typedef struct tagSRB_Abort {
    47   BYTE        SRB_Cmd;            /* ASPI command code = SC_ABORT_SRB */
    48   BYTE        SRB_Status;         /* ASPI command status byte */
    49   BYTE        SRB_HaId;           /* ASPI host adapter number */
    50   BYTE        SRB_Flags;          /* Reserved */
    51   DWORD       SRB_Hdr_Rsvd;       /* Reserved, MUST = 0 */
    52   LPSRB     SRB_ToAbort;        /* Pointer to SRB to abort */
    53 } SRB_Abort WINE_PACKED;
    54 
    55 typedef struct tagSRB_BusDeviceReset {
    56  BYTE         SRB_Cmd;                  /* ASPI command code = SC_RESET_DEV */
    57  BYTE         SRB_Status;               /* ASPI command status byte */
    58  BYTE         SRB_HaId;                 /* ASPI host adapter number */
    59  BYTE         SRB_Flags;                /* Reserved */
    60  DWORD        SRB_Hdr_Rsvd;             /* Reserved */
    61  BYTE         SRB_Target;               /* Target's SCSI ID */
    62  BYTE         SRB_Lun;                  /* Target's LUN number */
    63  BYTE         SRB_Rsvd1[12];            /* Reserved for Alignment */
    64  BYTE         SRB_HaStat;               /* Host Adapter Status */
    65  BYTE         SRB_TargStat;             /* Target Status */
    66  void         (*SRB_PostProc)();        /* Post routine */
    67  void         *SRB_Rsvd2;               /* Reserved */
    68  BYTE         SRB_Rsvd3[32];            /* Reserved */
    69 } SRB_BusDeviceReset WINE_PACKED;
    70 
    71 typedef struct tagSRB_GDEVBlock {
    72  BYTE  SRB_Cmd;                 /* ASPI command code = SC_GET_DEV_TYPE */
    73  BYTE  SRB_Status;              /* ASPI command status byte */
    74  BYTE  SRB_HaId;                /* ASPI host adapter number */
    75  BYTE  SRB_Flags;               /* Reserved */
    76  DWORD  SRB_Hdr_Rsvd;           /* Reserved */
    77  BYTE  SRB_Target;              /* Target's SCSI ID */
    78  BYTE  SRB_Lun;                 /* Target's LUN number */
    79  BYTE  SRB_DeviceType;          /* Target's peripheral device type */
     125} SRB_HaInquiry, *PSRB_HaInquiry;
     126
     127/* SRB - GET DEVICE TYPE - SC_GET_DEV_TYPE */
     128typedef struct tagSRB32_GDEVBlock {
     129 BYTE  SRB_Cmd;                 /* 00 ASPI command code = SC_GET_DEV_TYPE */
     130 BYTE  SRB_Status;              /* 01 ASPI command status byte */
     131 BYTE  SRB_HaId;                /* 02 ASPI host adapter number */
     132 BYTE  SRB_Flags;               /* 03 Reserved */
     133 DWORD  SRB_Hdr_Rsvd;           /* 04 Reserved */
     134 BYTE  SRB_Target;              /* 08 Target's SCSI ID */
     135 BYTE  SRB_Lun;                 /* 09 Target's LUN number */
     136 BYTE  SRB_DeviceType;          /* 0A Target's peripheral device type */
    80137 BYTE  SRB_Rsvd1;
    81 } SRB_GDEVBlock WINE_PACKED;
    82 
    83 typedef struct tagSRB_Common {
    84   BYTE  SRB_Cmd;
    85 } SRB_Common;
    86 
    87 union SRB {
    88   SRB_Common          common;
    89   SRB_HaInquiry       inquiry;
    90   SRB_ExecSCSICmd     cmd;
    91   SRB_Abort           abort;
    92   SRB_BusDeviceReset  reset;
    93   SRB_GDEVBlock       devtype;
    94 };
    95 
    96 typedef union SRB SRB;
     138} SRB_GDEVBlock, *PSRB_GDEVBlock;
     139
     140/* SRB - EXECUTE SCSI COMMAND - SC_EXEC_SCSI_CMD */
     141typedef struct tagSRB32_ExecSCSICmd {
     142  BYTE        SRB_Cmd;            /* 00 ASPI command code = SC_EXEC_SCSI_CMD */
     143  BYTE        SRB_Status;         /* 01 ASPI command status byte */
     144  BYTE        SRB_HaId;           /* 02 ASPI host adapter number */
     145  BYTE        SRB_Flags;          /* 03 ASPI request flags */
     146  DWORD       SRB_Hdr_Rsvd;       /* 04 Reserved */
     147  BYTE        SRB_Target;         /* 08 Target's SCSI ID */
     148  BYTE        SRB_Lun;            /* 09 Target's LUN number */
     149  WORD        SRB_Rsvd1;          /* 0A Reserved for Alignment */
     150  DWORD       SRB_BufLen;         /* 0C Data Allocation Length */
     151  BYTE        *SRB_BufPointer;    /* 10 Data Buffer Point */
     152  BYTE        SRB_SenseLen;       /* 14 Sense Allocation Length */
     153  BYTE        SRB_CDBLen;         /* 15 CDB Length */
     154  BYTE        SRB_HaStat;         /* 16 Host Adapter Status */
     155  BYTE        SRB_TargStat;       /* 17 Target Status */
     156  void        (*SRB_PostProc)();  /* 18 Post routine */
     157  void        *SRB_Rsvd2;         /* 1C Reserved */
     158  BYTE        SRB_Rsvd3[16];      /* 20 Reserved for expansion */
     159  BYTE        CDBByte[16];        /* 30 SCSI CDB */
     160  BYTE        SenseArea[SENSE_LEN+2];  /* 40 Request sense buffer - var length */
     161} SRB_ExecSCSICmd, *PSRB_ExecSCSICmd;
     162
     163/* SRB - ABORT AN ARB - SC_ABORT_SRB */
     164typedef struct tagSRB32_Abort {
     165  BYTE        SRB_Cmd;            /* 00 ASPI command code = SC_ABORT_SRB */
     166  BYTE        SRB_Status;         /* 01 ASPI command status byte */
     167  BYTE        SRB_HaId;           /* 02 ASPI host adapter number */
     168  BYTE        SRB_Flags;          /* 03 Reserved */
     169  DWORD       SRB_Hdr_Rsvd;       /* 04 Reserved, MUST = 0 */
     170  VOID       *SRB_ToAbort;        /* 08 Pointer to SRB to abort */
     171} SRB_Abort, *PSRB_Abort;
     172
     173/* SRB - BUS DEVICE RESET - SC_RESET_DEV */
     174typedef struct tagSRB32_BusDeviceReset {
     175 BYTE         SRB_Cmd;                  /* 00 ASPI cmd code = SC_RESET_DEV */
     176 BYTE         SRB_Status;               /* 01 ASPI command status byte */
     177 BYTE         SRB_HaId;                 /* 02 ASPI host adapter number */
     178 BYTE         SRB_Flags;                /* 03 Reserved */
     179 DWORD        SRB_Hdr_Rsvd;             /* 04 Reserved */
     180 BYTE         SRB_Target;               /* 08 Target's SCSI ID */
     181 BYTE         SRB_Lun;                  /* 09 Target's LUN number */
     182 BYTE         SRB_Rsvd1[12];            /* 0A Reserved for Alignment */
     183 BYTE         SRB_HaStat;               /* 16 Host Adapter Status */
     184 BYTE         SRB_TargStat;             /* 17 Target Status */
     185 void         (*SRB_PostProc)();        /* 18 Post routine */
     186 void         *SRB_Rsvd2;               /* 1c Reserved */
     187 BYTE         SRB_Rsvd3[32];            /* 20 Reserved */
     188} SRB_BusDeviceReset, *PSRB_BusDeviceReset;
     189
     190/* SRB - GET DISK INFORMATION - SC_GET_DISK_INFO */
     191typedef struct tagSRB32_GetDiskInfo {
     192 BYTE         SRB_Cmd;                  /* 00 ASPI cmd code = SC_RESET_DEV */
     193 BYTE         SRB_Status;               /* 01 ASPI command status byte */
     194 BYTE         SRB_HaId;                 /* 02 ASPI host adapter number */
     195 BYTE         SRB_Flags;                /* 03 Reserved */
     196 DWORD        SRB_Hdr_Rsvd;             /* 04 Reserved */
     197 BYTE         SRB_Target;               /* 08 Target's SCSI ID */
     198 BYTE         SRB_Lun;                  /* 09 Target's LUN number */
     199 BYTE         SRB_DriveFlags;           /* 0A Driver flags */
     200 BYTE         SRB_Int13HDriveInfo;      /* 0B Host Adapter Status */
     201 BYTE         SRB_Heads;                /* 0C Preferred number of heads trans */
     202 BYTE         SRB_Sectors;              /* 0D Preferred number of sectors trans */
     203 BYTE         SRB_Rsvd1[10];            /* 0E Reserved */
     204} SRB_GetDiskInfo, *PSRB_GetDiskInfo;
     205
     206/* SRB header */
     207typedef struct tagSRB32_Header {
     208 BYTE         SRB_Cmd;                  /* 00 ASPI cmd code = SC_RESET_DEV */
     209 BYTE         SRB_Status;               /* 01 ASPI command status byte */
     210 BYTE         SRB_HaId;                 /* 02 ASPI host adapter number */
     211 BYTE         SRB_Flags;                /* 03 Reserved */
     212 DWORD        SRB_Hdr_Rsvd;             /* 04 Reserved */
     213} SRB_Header, *PSRB_Header;
     214
     215typedef union tagSRB32 {
     216    SRB_Header          common;
     217    SRB_HaInquiry       inquiry;
     218    SRB_ExecSCSICmd     cmd;
     219    SRB_Abort           abort;
     220    SRB_BusDeviceReset  reset;
     221    SRB_GDEVBlock       devtype;
     222    SRB_GetDiskInfo     diskinfo;
     223} SRB, *PSRB, *LPSRB;
     224
     225typedef struct tagASPI32BUFF {
     226    LPBYTE AB_BufPointer;       /* pointer to buffer */
     227    DWORD AB_BufLen;            /* length of buffer */
     228    DWORD AB_ZeroFill;          /* set to 1 if zeroing */
     229    DWORD AB_Reserved;          /* 0 */
     230} ASPI32BUFF, *PASPI32BUFF;
    97231
    98232#include "poppack.h"
    99233
     234/* Prototypes */
     235extern DWORD __cdecl SendASPI32Command (PSRB);
     236extern DWORD __cdecl GetASPI32SupportInfo (void);
     237extern DWORD __cdecl GetASPI32DLLVersion(void);
     238extern BOOL  __cdecl GetASPI32Buffer(PASPI32BUFF pab);
     239
    100240#endif
Note: See TracChangeset for help on using the changeset viewer.