End of file fix for gcc 3.x
[reactos.git] / reactos / include / ddk / ntddscsi.h
1 /* $Id: ntddscsi.h,v 1.2 2002/10/03 18:33:47 sedwards Exp $
2 *
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: services/storage/include/ntddscsi.h
6 * PURPOSE: Basic SCSI definitions
7 * PROGRAMMER: Eric Kohl (ekohl@rz-online.de)
8 */
9
10 #ifndef __STORAGE_INCLUDE_NTDDSCSI_H
11 #define __STORAGE_INCLUDE_NTDDSCSI_H
12
13
14 /* IOCTL codes */
15
16 #define IOCTL_SCSI_PASS_THROUGH \
17 CTL_CODE(FILE_DEVICE_CONTROLLER, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
18 #define IOCTL_SCSI_MINIPORT \
19 CTL_CODE(FILE_DEVICE_CONTROLLER, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
20 #define IOCTL_SCSI_GET_INQUIRY_DATA \
21 CTL_CODE(FILE_DEVICE_CONTROLLER, 0x0403, METHOD_BUFFERED, FILE_ANY_ACCESS)
22 #define IOCTL_SCSI_GET_CAPABILITIES \
23 CTL_CODE(FILE_DEVICE_CONTROLLER, 0x0404, METHOD_BUFFERED, FILE_ANY_ACCESS)
24 #define IOCTL_SCSI_PASS_THROUGH_DIRECT \
25 CTL_CODE(FILE_DEVICE_CONTROLLER, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
26 #define IOCTL_SCSI_GET_ADDRESS \
27 CTL_CODE(FILE_DEVICE_CONTROLLER, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS)
28 #define IOCTL_SCSI_RESCAN_BUS \
29 CTL_CODE(FILE_DEVICE_CONTROLLER, 0x0407, METHOD_BUFFERED, FILE_ANY_ACCESS)
30 #define IOCTL_SCSI_GET_DUMP_POINTERS \
31 CTL_CODE(FILE_DEVICE_CONTROLLER, 0x0408, METHOD_BUFFERED, FILE_ANY_ACCESS)
32
33
34
35 /* Used by IOCTL_SCSI_GET_CAPABILITIES */
36
37 typedef struct _IO_SCSI_CAPABILITIES
38 {
39 ULONG Length;
40 ULONG MaximumTransferLength;
41 ULONG MaximumPhysicalPages;
42 ULONG SupportedAsynchronousEvents;
43 ULONG AlignmentMask;
44 BOOLEAN TaggedQueuing;
45 BOOLEAN AdapterScansDown;
46 BOOLEAN AdapterUsesPio;
47 } IO_SCSI_CAPABILITIES, *PIO_SCSI_CAPABILITIES;
48
49
50 /* Used by IOCTL_SCSI_GET_INQUIRY_DATA */
51
52 typedef struct _SCSI_BUS_DATA
53 {
54 UCHAR NumberOfLogicalUnits;
55 UCHAR InitiatorBusId;
56 ULONG InquiryDataOffset;
57 }SCSI_BUS_DATA, *PSCSI_BUS_DATA;
58
59
60 typedef struct _SCSI_ADAPTER_BUS_INFO
61 {
62 UCHAR NumberOfBuses;
63 SCSI_BUS_DATA BusData[1];
64 } SCSI_ADAPTER_BUS_INFO, *PSCSI_ADAPTER_BUS_INFO;
65
66
67 typedef struct _SCSI_INQUIRY_DATA
68 {
69 UCHAR PathId;
70 UCHAR TargetId;
71 UCHAR Lun;
72 BOOLEAN DeviceClaimed;
73 ULONG InquiryDataLength;
74 ULONG NextInquiryDataOffset;
75 UCHAR InquiryData[1];
76 }SCSI_INQUIRY_DATA, *PSCSI_INQUIRY_DATA;
77
78
79 /* Used by IOCTL_SCSI_GET_ADDRESS */
80
81 typedef struct _SCSI_ADDRESS
82 {
83 ULONG Length;
84 UCHAR PortNumber;
85 UCHAR PathId;
86 UCHAR TargetId;
87 UCHAR Lun;
88 } SCSI_ADDRESS, *PSCSI_ADDRESS;
89
90 #endif /* __STORAGE_INCLUDE_NTDDSCSI_H */
91
92 /* EOF */