/[pearpc]/src/system/osapi/win32/scsipt.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /src/system/osapi/win32/scsipt.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations)
Wed Sep 5 17:11:21 2007 UTC (16 years, 7 months ago) by dpavlin
File MIME type: text/plain
File size: 3221 byte(s)
import upstream CVS
1 //
2 //
3 // iodev/scsipt.h
4 //
5 // This file was copied from ... ?
6 //
7 // distilled information from various header files from Microsoft's
8 // DDK for Windows NT 4.0
9 //
10
11 #ifndef _SCSIPT_H_INC
12 #define _SCSIPT_H_INC
13
14 #include <windows.h>
15
16 typedef struct
17 {
18 USHORT Length;
19 UCHAR ScsiStatus;
20 UCHAR PathId;
21 UCHAR TargetId;
22 UCHAR Lun;
23 UCHAR CdbLength;
24 UCHAR SenseInfoLength;
25 UCHAR DataIn;
26 ULONG DataTransferLength;
27 ULONG TimeOutValue;
28 ULONG DataBufferOffset;
29 ULONG SenseInfoOffset;
30 UCHAR Cdb[16];
31 } SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH;
32
33
34 typedef struct
35 {
36 USHORT Length;
37 UCHAR ScsiStatus;
38 UCHAR PathId;
39 UCHAR TargetId;
40 UCHAR Lun;
41 UCHAR CdbLength;
42 UCHAR SenseInfoLength;
43 UCHAR DataIn;
44 ULONG DataTransferLength;
45 ULONG TimeOutValue;
46 PVOID DataBuffer;
47 ULONG SenseInfoOffset;
48 UCHAR Cdb[16];
49 } SCSI_PASS_THROUGH_DIRECT, *PSCSI_PASS_THROUGH_DIRECT;
50
51
52 typedef struct
53 {
54 SCSI_PASS_THROUGH spt;
55 ULONG Filler;
56 UCHAR ucSenseBuf[32];
57 UCHAR ucDataBuf[512];
58 } SCSI_PASS_THROUGH_WITH_BUFFERS, *PSCSI_PASS_THROUGH_WITH_BUFFERS;
59
60
61 typedef struct
62 {
63 SCSI_PASS_THROUGH_DIRECT spt;
64 ULONG Filler;
65 UCHAR ucSenseBuf[32];
66 } SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER,
67 *PSCSI_PASS_THROUGH_DIRECT_WITH_BUFFER;
68
69
70
71 typedef struct
72 {
73 UCHAR NumberOfLogicalUnits;
74 UCHAR InitiatorBusId;
75 ULONG InquiryDataOffset;
76 } SCSI_BUS_DATA, *PSCSI_BUS_DATA;
77
78
79 typedef struct
80 {
81 UCHAR NumberOfBusses;
82 SCSI_BUS_DATA BusData[1];
83 } SCSI_ADAPTER_BUS_INFO, *PSCSI_ADAPTER_BUS_INFO;
84
85
86 typedef struct
87 {
88 UCHAR PathId;
89 UCHAR TargetId;
90 UCHAR Lun;
91 BOOLEAN DeviceClaimed;
92 ULONG InquiryDataLength;
93 ULONG NextInquiryDataOffset;
94 UCHAR InquiryData[1];
95 } SCSI_INQUIRY_DATA, *PSCSI_INQUIRY_DATA;
96
97
98 typedef struct
99 {
100 ULONG Length;
101 UCHAR PortNumber;
102 UCHAR PathId;
103 UCHAR TargetId;
104 UCHAR Lun;
105 } SCSI_ADDRESS, *PSCSI_ADDRESS;
106
107
108 /*
109 * method codes
110 */
111 #define METHOD_BUFFERED 0
112 #define METHOD_IN_DIRECT 1
113 #define METHOD_OUT_DIRECT 2
114 #define METHOD_NEITHER 3
115
116 /*
117 * file access values
118 */
119 #define FILE_ANY_ACCESS 0
120 #define FILE_READ_ACCESS (0x0001)
121 #define FILE_WRITE_ACCESS (0x0002)
122
123
124 #define IOCTL_SCSI_BASE 0x00000004
125
126 /*
127 * constants for DataIn member of SCSI_PASS_THROUGH* structures
128 */
129 #define SCSI_IOCTL_DATA_OUT 0
130 #define SCSI_IOCTL_DATA_IN 1
131 #define SCSI_IOCTL_DATA_UNSPECIFIED 2
132
133 /*
134 * Standard IOCTL define
135 */
136 #define CTL_CODE( DevType, Function, Method, Access ) ( \
137 ((DevType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
138 )
139
140 #define IOCTL_SCSI_PASS_THROUGH CTL_CODE( IOCTL_SCSI_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS )
141 #define IOCTL_SCSI_MINIPORT CTL_CODE( IOCTL_SCSI_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS )
142 #define IOCTL_SCSI_GET_INQUIRY_DATA CTL_CODE( IOCTL_SCSI_BASE, 0x0403, METHOD_BUFFERED, FILE_ANY_ACCESS)
143 #define IOCTL_SCSI_GET_CAPABILITIES CTL_CODE( IOCTL_SCSI_BASE, 0x0404, METHOD_BUFFERED, FILE_ANY_ACCESS)
144 #define IOCTL_SCSI_PASS_THROUGH_DIRECT CTL_CODE( IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS )
145 #define IOCTL_SCSI_GET_ADDRESS CTL_CODE( IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS )
146
147
148
149 #endif

  ViewVC Help
Powered by ViewVC 1.1.26