Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenntddscsi.h
Go to the documentation of this file.
00001 00006 #ifdef DEFINE_GUID 00007 00008 #ifndef FAR 00009 #define FAR 00010 #endif 00011 00012 DEFINE_GUID(ScsiRawInterfaceGuid,0x53f56309L,0xb6bf,0x11d0,0x94,0xf2,0x00,0xa0,0xc9,0x1e,0xfb,0x8b); 00013 DEFINE_GUID(WmiScsiAddressGuid,0x53f5630fL,0xb6bf,0x11d0,0x94,0xf2,0x00,0xa0,0xc9,0x1e,0xfb,0x8b); 00014 #endif /* DEFINE_GUID */ 00015 00016 #ifndef _NTDDSCSIH_ 00017 #define _NTDDSCSIH_ 00018 00019 #ifdef __cplusplus 00020 extern "C" { 00021 #endif 00022 00023 #define IOCTL_SCSI_BASE FILE_DEVICE_CONTROLLER 00024 00025 #define DD_SCSI_DEVICE_NAME "\\Device\\ScsiPort" 00026 #define DD_SCSI_DEVICE_NAME_U L"\\Device\\ScsiPort" 00027 00028 #define IOCTL_SCSI_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE,0x0401,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00029 #define IOCTL_SCSI_MINIPORT CTL_CODE(IOCTL_SCSI_BASE,0x0402,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00030 #define IOCTL_SCSI_GET_INQUIRY_DATA CTL_CODE(IOCTL_SCSI_BASE,0x0403,METHOD_BUFFERED,FILE_ANY_ACCESS) 00031 #define IOCTL_SCSI_GET_CAPABILITIES CTL_CODE(IOCTL_SCSI_BASE,0x0404,METHOD_BUFFERED,FILE_ANY_ACCESS) 00032 #define IOCTL_SCSI_PASS_THROUGH_DIRECT CTL_CODE(IOCTL_SCSI_BASE,0x0405,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00033 #define IOCTL_SCSI_GET_ADDRESS CTL_CODE(IOCTL_SCSI_BASE,0x0406,METHOD_BUFFERED,FILE_ANY_ACCESS) 00034 #define IOCTL_SCSI_RESCAN_BUS CTL_CODE(IOCTL_SCSI_BASE,0x0407,METHOD_BUFFERED,FILE_ANY_ACCESS) 00035 #define IOCTL_SCSI_GET_DUMP_POINTERS CTL_CODE(IOCTL_SCSI_BASE,0x0408,METHOD_BUFFERED,FILE_ANY_ACCESS) 00036 #define IOCTL_SCSI_FREE_DUMP_POINTERS CTL_CODE(IOCTL_SCSI_BASE,0x0409,METHOD_BUFFERED,FILE_ANY_ACCESS) 00037 #define IOCTL_IDE_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE,0x040a,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00038 #define IOCTL_ATA_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE,0x040b,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00039 #define IOCTL_ATA_PASS_THROUGH_DIRECT CTL_CODE(IOCTL_SCSI_BASE,0x040c,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00040 00041 typedef struct _SCSI_PASS_THROUGH { 00042 USHORT Length; 00043 UCHAR ScsiStatus; 00044 UCHAR PathId; 00045 UCHAR TargetId; 00046 UCHAR Lun; 00047 UCHAR CdbLength; 00048 UCHAR SenseInfoLength; 00049 UCHAR DataIn; 00050 ULONG DataTransferLength; 00051 ULONG TimeOutValue; 00052 ULONG_PTR DataBufferOffset; 00053 ULONG SenseInfoOffset; 00054 UCHAR Cdb[16]; 00055 }SCSI_PASS_THROUGH,*PSCSI_PASS_THROUGH; 00056 00057 typedef struct _SCSI_PASS_THROUGH_DIRECT { 00058 USHORT Length; 00059 UCHAR ScsiStatus; 00060 UCHAR PathId; 00061 UCHAR TargetId; 00062 UCHAR Lun; 00063 UCHAR CdbLength; 00064 UCHAR SenseInfoLength; 00065 UCHAR DataIn; 00066 ULONG DataTransferLength; 00067 ULONG TimeOutValue; 00068 PVOID DataBuffer; 00069 ULONG SenseInfoOffset; 00070 UCHAR Cdb[16]; 00071 }SCSI_PASS_THROUGH_DIRECT,*PSCSI_PASS_THROUGH_DIRECT; 00072 00073 #if defined(_WIN64) 00074 typedef struct _SCSI_PASS_THROUGH32 { 00075 USHORT Length; 00076 UCHAR ScsiStatus; 00077 UCHAR PathId; 00078 UCHAR TargetId; 00079 UCHAR Lun; 00080 UCHAR CdbLength; 00081 UCHAR SenseInfoLength; 00082 UCHAR DataIn; 00083 ULONG DataTransferLength; 00084 ULONG TimeOutValue; 00085 ULONG32 DataBufferOffset; 00086 ULONG SenseInfoOffset; 00087 UCHAR Cdb[16]; 00088 } SCSI_PASS_THROUGH32,*PSCSI_PASS_THROUGH32; 00089 00090 typedef struct _SCSI_PASS_THROUGH_DIRECT32 { 00091 USHORT Length; 00092 UCHAR ScsiStatus; 00093 UCHAR PathId; 00094 UCHAR TargetId; 00095 UCHAR Lun; 00096 UCHAR CdbLength; 00097 UCHAR SenseInfoLength; 00098 UCHAR DataIn; 00099 ULONG DataTransferLength; 00100 ULONG TimeOutValue; 00101 VOID *DataBuffer; 00102 ULONG SenseInfoOffset; 00103 UCHAR Cdb[16]; 00104 } SCSI_PASS_THROUGH_DIRECT32,*PSCSI_PASS_THROUGH_DIRECT32; 00105 #endif /* _WIN64 */ 00106 00107 typedef struct _ATA_PASS_THROUGH_EX { 00108 USHORT Length; 00109 USHORT AtaFlags; 00110 UCHAR PathId; 00111 UCHAR TargetId; 00112 UCHAR Lun; 00113 UCHAR ReservedAsUchar; 00114 ULONG DataTransferLength; 00115 ULONG TimeOutValue; 00116 ULONG ReservedAsUlong; 00117 ULONG_PTR DataBufferOffset; 00118 UCHAR PreviousTaskFile[8]; 00119 UCHAR CurrentTaskFile[8]; 00120 } ATA_PASS_THROUGH_EX,*PATA_PASS_THROUGH_EX; 00121 00122 typedef struct _ATA_PASS_THROUGH_DIRECT { 00123 USHORT Length; 00124 USHORT AtaFlags; 00125 UCHAR PathId; 00126 UCHAR TargetId; 00127 UCHAR Lun; 00128 UCHAR ReservedAsUchar; 00129 ULONG DataTransferLength; 00130 ULONG TimeOutValue; 00131 ULONG ReservedAsUlong; 00132 PVOID DataBuffer; 00133 UCHAR PreviousTaskFile[8]; 00134 UCHAR CurrentTaskFile[8]; 00135 } ATA_PASS_THROUGH_DIRECT,*PATA_PASS_THROUGH_DIRECT; 00136 00137 #if defined(_WIN64) 00138 00139 typedef struct _ATA_PASS_THROUGH_EX32 { 00140 USHORT Length; 00141 USHORT AtaFlags; 00142 UCHAR PathId; 00143 UCHAR TargetId; 00144 UCHAR Lun; 00145 UCHAR ReservedAsUchar; 00146 ULONG DataTransferLength; 00147 ULONG TimeOutValue; 00148 ULONG ReservedAsUlong; 00149 ULONG32 DataBufferOffset; 00150 UCHAR PreviousTaskFile[8]; 00151 UCHAR CurrentTaskFile[8]; 00152 } ATA_PASS_THROUGH_EX32,*PATA_PASS_THROUGH_EX32; 00153 00154 typedef struct _ATA_PASS_THROUGH_DIRECT32 { 00155 USHORT Length; 00156 USHORT AtaFlags; 00157 UCHAR PathId; 00158 UCHAR TargetId; 00159 UCHAR Lun; 00160 UCHAR ReservedAsUchar; 00161 ULONG DataTransferLength; 00162 ULONG TimeOutValue; 00163 ULONG ReservedAsUlong; 00164 VOID *DataBuffer; 00165 UCHAR PreviousTaskFile[8]; 00166 UCHAR CurrentTaskFile[8]; 00167 } ATA_PASS_THROUGH_DIRECT32,*PATA_PASS_THROUGH_DIRECT32; 00168 #endif /* _WIN64 */ 00169 00170 #define ATA_FLAGS_DRDY_REQUIRED (1 << 0) 00171 #define ATA_FLAGS_DATA_IN (1 << 1) 00172 #define ATA_FLAGS_DATA_OUT (1 << 2) 00173 #define ATA_FLAGS_48BIT_COMMAND (1 << 3) 00174 #define ATA_FLAGS_USE_DMA (1 << 4) 00175 00176 typedef struct _SCSI_BUS_DATA { 00177 UCHAR NumberOfLogicalUnits; 00178 UCHAR InitiatorBusId; 00179 ULONG InquiryDataOffset; 00180 }SCSI_BUS_DATA,*PSCSI_BUS_DATA; 00181 00182 typedef struct _SCSI_ADAPTER_BUS_INFO { 00183 UCHAR NumberOfBuses; 00184 SCSI_BUS_DATA BusData[1]; 00185 } SCSI_ADAPTER_BUS_INFO,*PSCSI_ADAPTER_BUS_INFO; 00186 00187 typedef struct _SCSI_INQUIRY_DATA { 00188 UCHAR PathId; 00189 UCHAR TargetId; 00190 UCHAR Lun; 00191 BOOLEAN DeviceClaimed; 00192 ULONG InquiryDataLength; 00193 ULONG NextInquiryDataOffset; 00194 UCHAR InquiryData[1]; 00195 }SCSI_INQUIRY_DATA,*PSCSI_INQUIRY_DATA; 00196 00197 typedef struct _SRB_IO_CONTROL { 00198 ULONG HeaderLength; 00199 UCHAR Signature[8]; 00200 ULONG Timeout; 00201 ULONG ControlCode; 00202 ULONG ReturnCode; 00203 ULONG Length; 00204 } SRB_IO_CONTROL,*PSRB_IO_CONTROL; 00205 00206 typedef struct _IO_SCSI_CAPABILITIES { 00207 ULONG Length; 00208 ULONG MaximumTransferLength; 00209 ULONG MaximumPhysicalPages; 00210 ULONG SupportedAsynchronousEvents; 00211 ULONG AlignmentMask; 00212 BOOLEAN TaggedQueuing; 00213 BOOLEAN AdapterScansDown; 00214 BOOLEAN AdapterUsesPio; 00215 } IO_SCSI_CAPABILITIES,*PIO_SCSI_CAPABILITIES; 00216 00217 typedef struct _SCSI_ADDRESS { 00218 ULONG Length; 00219 UCHAR PortNumber; 00220 UCHAR PathId; 00221 UCHAR TargetId; 00222 UCHAR Lun; 00223 } SCSI_ADDRESS,*PSCSI_ADDRESS; 00224 00225 struct _ADAPTER_OBJECT; 00226 00227 typedef struct _DUMP_POINTERS { 00228 struct _ADAPTER_OBJECT *AdapterObject; 00229 PVOID MappedRegisterBase; 00230 PVOID DumpData; 00231 PVOID CommonBufferVa; 00232 LARGE_INTEGER CommonBufferPa; 00233 ULONG CommonBufferSize; 00234 BOOLEAN AllocateCommonBuffers; 00235 BOOLEAN UseDiskDump; 00236 UCHAR Spare1[2]; 00237 PVOID DeviceObject; 00238 } DUMP_POINTERS,*PDUMP_POINTERS; 00239 00240 #define SCSI_IOCTL_DATA_OUT 0 00241 #define SCSI_IOCTL_DATA_IN 1 00242 #define SCSI_IOCTL_DATA_UNSPECIFIED 2 00243 00244 #ifdef __cplusplus 00245 } 00246 #endif 00247 00248 #endif /* _NTDDSCSIH_ */ 00249 Generated on Sun May 27 2012 04:28:26 for ReactOS by
1.7.6.1
|