source: trunk/include/win/ntddscsi.h@ 10367

Last change on this file since 10367 was 9664, checked in by sandervl, 23 years ago

fixed BOOL structure members (must be 1 byte, not 4)

File size: 3.8 KB
Line 
1/* $Id: ntddscsi.h,v 1.2 2003-01-12 16:19:56 sandervl Exp $ */
2#ifndef __NTDDSCSI_H__
3#define __NTDDSCSI_H__
4
5#include <winioctl.h>
6
7#define IOCTL_SCSI_BASE FILE_DEVICE_CONTROLLER
8
9#define DD_SCSI_DEVICE_NAME "\\Device\\ScsiPort"
10
11#define IOCTL_SCSI_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
12#define IOCTL_SCSI_MINIPORT CTL_CODE(IOCTL_SCSI_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
13#define IOCTL_SCSI_GET_INQUIRY_DATA CTL_CODE(IOCTL_SCSI_BASE, 0x0403, METHOD_BUFFERED, FILE_ANY_ACCESS)
14#define IOCTL_SCSI_GET_CAPABILITIES CTL_CODE(IOCTL_SCSI_BASE, 0x0404, METHOD_BUFFERED, FILE_ANY_ACCESS)
15#define IOCTL_SCSI_PASS_THROUGH_DIRECT CTL_CODE(IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
16#define IOCTL_SCSI_GET_ADDRESS CTL_CODE(IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS)
17#define IOCTL_SCSI_RESCAN_BUS CTL_CODE(IOCTL_SCSI_BASE, 0x0407, METHOD_BUFFERED, FILE_ANY_ACCESS)
18#define IOCTL_SCSI_GET_DUMP_POINTERS CTL_CODE(IOCTL_SCSI_BASE, 0x0408, METHOD_BUFFERED, FILE_ANY_ACCESS)
19#define IOCTL_SCSI_FREE_DUMP_POINTERS CTL_CODE(IOCTL_SCSI_BASE, 0x0409, METHOD_BUFFERED, FILE_ANY_ACCESS)
20#define IOCTL_IDE_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE, 0x040a, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
21
22typedef struct _SCSI_PASS_THROUGH {
23 USHORT Length;
24 UCHAR ScsiStatus;
25 UCHAR PathId;
26 UCHAR TargetId;
27 UCHAR Lun;
28 UCHAR CdbLength;
29 UCHAR SenseInfoLength;
30 UCHAR DataIn;
31 ULONG DataTransferLength;
32 ULONG TimeOutValue;
33 ULONG_PTR DataBufferOffset;
34 ULONG SenseInfoOffset;
35 UCHAR Cdb[16];
36}SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH;
37
38typedef struct _SCSI_PASS_THROUGH_DIRECT {
39 USHORT Length;
40 UCHAR ScsiStatus;
41 UCHAR PathId;
42 UCHAR TargetId;
43 UCHAR Lun;
44 UCHAR CdbLength;
45 UCHAR SenseInfoLength;
46 UCHAR DataIn;
47 ULONG DataTransferLength;
48 ULONG TimeOutValue;
49 PVOID DataBuffer;
50 ULONG SenseInfoOffset;
51 UCHAR Cdb[16];
52}SCSI_PASS_THROUGH_DIRECT, *PSCSI_PASS_THROUGH_DIRECT;
53
54typedef struct _SCSI_BUS_DATA {
55 UCHAR NumberOfLogicalUnits;
56 UCHAR InitiatorBusId;
57 ULONG InquiryDataOffset;
58}SCSI_BUS_DATA, *PSCSI_BUS_DATA;
59
60typedef struct _SCSI_ADAPTER_BUS_INFO {
61 UCHAR NumberOfBuses;
62 SCSI_BUS_DATA BusData[1];
63} SCSI_ADAPTER_BUS_INFO, *PSCSI_ADAPTER_BUS_INFO;
64
65typedef struct _SCSI_INQUIRY_DATA {
66 UCHAR PathId;
67 UCHAR TargetId;
68 UCHAR Lun;
69 BOOLEAN DeviceClaimed;
70 ULONG InquiryDataLength;
71 ULONG NextInquiryDataOffset;
72 UCHAR InquiryData[1];
73}SCSI_INQUIRY_DATA, *PSCSI_INQUIRY_DATA;
74
75typedef struct _SRB_IO_CONTROL {
76 ULONG HeaderLength;
77 UCHAR Signature[8];
78 ULONG Timeout;
79 ULONG ControlCode;
80 ULONG ReturnCode;
81 ULONG Length;
82} SRB_IO_CONTROL, *PSRB_IO_CONTROL;
83
84typedef struct _IO_SCSI_CAPABILITIES {
85 ULONG Length;
86 ULONG MaximumTransferLength;
87 ULONG MaximumPhysicalPages;
88 ULONG SupportedAsynchronousEvents;
89 ULONG AlignmentMask;
90 BOOLEAN TaggedQueuing;
91 BOOLEAN AdapterScansDown;
92 BOOLEAN AdapterUsesPio;
93} IO_SCSI_CAPABILITIES, *PIO_SCSI_CAPABILITIES;
94
95typedef struct _SCSI_ADDRESS {
96 ULONG Length;
97 UCHAR PortNumber;
98 UCHAR PathId;
99 UCHAR TargetId;
100 UCHAR Lun;
101}SCSI_ADDRESS, *PSCSI_ADDRESS;
102
103struct _ADAPTER_OBJECT;
104
105typedef struct _DUMP_POINTERS {
106 struct _ADAPTER_OBJECT *AdapterObject;
107 PVOID MappedRegisterBase;
108 PVOID DumpData;
109 PVOID CommonBufferVa;
110 LARGE_INTEGER CommonBufferPa;
111 ULONG CommonBufferSize;
112 BOOLEAN AllocateCommonBuffers;
113 UCHAR Spare1[3];
114 PVOID DeviceObject;
115} DUMP_POINTERS, *PDUMP_POINTERS;
116
117#define SCSI_IOCTL_DATA_OUT 0
118#define SCSI_IOCTL_DATA_IN 1
119#define SCSI_IOCTL_DATA_UNSPECIFIED 2
120
121#endif // __NTDDSCSI_H__
122
Note: See TracBrowser for help on using the repository browser.