Implemented GdiFreeResources (GDI.609).
[wine/multimedia.git] / include / wnaspi32.h
blobb62a633875333e6d877a2fae38b525f0fc632120
1 #if !defined(WNASPI32_H)
2 #define WNASPI32_H
4 #pragma pack(1)
6 typedef union SRB32 * LPSRB32;
8 typedef struct tagSRB_HaInquiry32 {
9 BYTE SRB_Cmd; /* ASPI command code = SC_HA_INQUIRY */
10 BYTE SRB_Status; /* ASPI command status byte */
11 BYTE SRB_HaId; /* ASPI host adapter number */
12 BYTE SRB_Flags; /* ASPI request flags */
13 DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 */
14 BYTE HA_Count; /* Number of host adapters present */
15 BYTE HA_SCSI_ID; /* SCSI ID of host adapter */
16 BYTE HA_ManagerId[16]; /* String describing the manager */
17 BYTE HA_Identifier[16]; /* String describing the host adapter */
18 BYTE HA_Unique[16]; /* Host Adapter Unique parameters */
19 WORD HA_Rsvd1;
20 } SRB_HaInquiry32 WINE_PACKED;
22 typedef struct tagSRB_ExecSCSICmd32 {
23 BYTE SRB_Cmd; /* ASPI command code = SC_EXEC_SCSI_CMD */
24 BYTE SRB_Status; /* ASPI command status byte */
25 BYTE SRB_HaId; /* ASPI host adapter number */
26 BYTE SRB_Flags; /* ASPI request flags */
27 DWORD SRB_Hdr_Rsvd; /* Reserved */
28 BYTE SRB_Target; /* Target's SCSI ID */
29 BYTE SRB_Lun; /* Target's LUN number */
30 WORD SRB_Rsvd1; /* Reserved for Alignment */
31 DWORD SRB_BufLen; /* Data Allocation Length */
32 BYTE *SRB_BufPointer; /* Data Buffer Point */
33 BYTE SRB_SenseLen; /* Sense Allocation Length */
34 BYTE SRB_CDBLen; /* CDB Length */
35 BYTE SRB_HaStat; /* Host Adapter Status */
36 BYTE SRB_TargStat; /* Target Status */
37 void (*SRB_PostProc)(); /* Post routine */
38 void *SRB_Rsvd2; /* Reserved */
39 BYTE SRB_Rsvd3[16]; /* Reserved for expansion */
40 BYTE CDBByte[16]; /* SCSI CDB */
41 BYTE SenseArea[0]; /* Request sense buffer - var length */
42 } SRB_ExecSCSICmd32 WINE_PACKED;
44 typedef struct tagSRB_Abort32 {
45 BYTE SRB_Cmd; /* ASPI command code = SC_ABORT_SRB */
46 BYTE SRB_Status; /* ASPI command status byte */
47 BYTE SRB_HaId; /* ASPI host adapter number */
48 BYTE SRB_Flags; /* Reserved */
49 DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 */
50 LPSRB32 SRB_ToAbort; /* Pointer to SRB to abort */
51 } SRB_Abort32 WINE_PACKED;
53 typedef struct tagSRB_BusDeviceReset32 {
54 BYTE SRB_Cmd; /* ASPI command code = SC_RESET_DEV */
55 BYTE SRB_Status; /* ASPI command status byte */
56 BYTE SRB_HaId; /* ASPI host adapter number */
57 BYTE SRB_Flags; /* Reserved */
58 DWORD SRB_Hdr_Rsvd; /* Reserved */
59 BYTE SRB_Target; /* Target's SCSI ID */
60 BYTE SRB_Lun; /* Target's LUN number */
61 BYTE SRB_Rsvd1[12]; /* Reserved for Alignment */
62 BYTE SRB_HaStat; /* Host Adapter Status */
63 BYTE SRB_TargStat; /* Target Status */
64 void (*SRB_PostProc)(); /* Post routine */
65 void *SRB_Rsvd2; /* Reserved */
66 BYTE SRB_Rsvd3[32]; /* Reserved */
67 } SRB_BusDeviceReset32 WINE_PACKED;
69 typedef struct tagSRB_GDEVBlock32 {
70 BYTE SRB_Cmd; /* ASPI command code = SC_GET_DEV_TYPE */
71 BYTE SRB_Status; /* ASPI command status byte */
72 BYTE SRB_HaId; /* ASPI host adapter number */
73 BYTE SRB_Flags; /* Reserved */
74 DWORD SRB_Hdr_Rsvd; /* Reserved */
75 BYTE SRB_Target; /* Target's SCSI ID */
76 BYTE SRB_Lun; /* Target's LUN number */
77 BYTE SRB_DeviceType; /* Target's peripheral device type */
78 BYTE SRB_Rsvd1;
79 } SRB_GDEVBlock32 WINE_PACKED;
81 typedef struct tagSRB_Common32 {
82 BYTE SRB_Cmd;
83 } SRB_Common32;
85 union SRB32 {
86 SRB_Common32 common;
87 SRB_HaInquiry32 inquiry;
88 SRB_ExecSCSICmd32 cmd;
89 SRB_Abort32 abort;
90 SRB_BusDeviceReset32 reset;
91 SRB_GDEVBlock32 devtype;
94 typedef union SRB32 SRB32;
96 #endif