ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ntddscsi.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.