/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (hide annotations)
Wed Sep 5 17:11:21 2007 UTC (16 years, 8 months ago) by dpavlin
File MIME type: text/plain
File size: 3221 byte(s)
import upstream CVS
1 dpavlin 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