Data Structures |
| struct | PCLASS_INIT_DATA |
| struct | PDEVICE_EXTENSION |
| struct | PCOMPLETION_CONTEXT |
Defines |
| #define | MAXIMUM_RETRIES 15 |
| #define | RETRY_WAIT 2000000 /* 200 ms in units of 100 ns */ |
| #define | DEV_WRITE_CACHE 0x00000001 |
| #define | DEV_USE_SCSI1 0x00000002 |
| #define | DEV_SAFE_START_UNIT 0x00000004 |
| #define | DEV_NO_12BYTE_CDB 0x00000008 |
Typedefs |
| typedef IN PSCSI_REQUEST_BLOCK | Srb |
typedef IN PSCSI_REQUEST_BLOCK
IN OUT NTSTATUS * | Status |
typedef IN PSCSI_REQUEST_BLOCK
IN OUT NTSTATUS IN OUT BOOLEAN * | Retry |
| typedef BOOLEAN(NTAPI * | PCLASS_DEVICE_CALLBACK )(IN PINQUIRYDATA) |
| typedef NTSTATUS(NTAPI * | PCLASS_READ_WRITE )(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| typedef BOOLEAN(NTAPI * | PCLASS_FIND_DEVICES )(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath, IN struct _CLASS_INIT_DATA *InitializationData, IN PDEVICE_OBJECT PortDeviceObject, IN ULONG PortNumber) |
| typedef NTSTATUS(NTAPI * | PCLASS_DEVICE_CONTROL )(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| typedef NTSTATUS(NTAPI * | PCLASS_SHUTDOWN_FLUSH )(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| typedef NTSTATUS(NTAPI * | PCLASS_CREATE_CLOSE )(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
Functions |
| typedef | VOID (NTAPI *PCLASS_ERROR)(IN PDEVICE_OBJECT DeviceObject |
| NTSTATUS NTAPI | ScsiClassAsynchronousCompletion (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) |
| VOID NTAPI | ScsiClassBuildRequest (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| NTSTATUS NTAPI | ScsiClassClaimDevice (IN PDEVICE_OBJECT PortDeviceObject, IN PSCSI_INQUIRY_DATA LunInfo, IN BOOLEAN Release, OUT PDEVICE_OBJECT *NewPortDeviceObject OPTIONAL) |
| NTSTATUS NTAPI | ScsiClassCreateDeviceObject (IN PDRIVER_OBJECT DriverObject, IN PCCHAR ObjectNameBuffer, IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL, IN OUT PDEVICE_OBJECT *DeviceObject, IN PCLASS_INIT_DATA InitializationData) |
| NTSTATUS NTAPI | ScsiClassDeviceControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| PVOID NTAPI | ScsiClassFindModePage (IN PCHAR ModeSenseBuffer, IN ULONG Length, IN UCHAR PageMode, IN BOOLEAN Use6Byte) |
| ULONG NTAPI | ScsiClassFindUnclaimedDevices (IN PCLASS_INIT_DATA InitializationData, OUT PSCSI_ADAPTER_BUS_INFO AdapterInformation) |
| NTSTATUS NTAPI | ScsiClassGetCapabilities (IN PDEVICE_OBJECT PortDeviceObject, OUT PIO_SCSI_CAPABILITIES *PortCapabilities) |
| NTSTATUS NTAPI | ScsiClassGetInquiryData (IN PDEVICE_OBJECT PortDeviceObject, OUT PSCSI_ADAPTER_BUS_INFO *ConfigInfo) |
| ULONG NTAPI | ScsiClassInitialize (IN PVOID Argument1, IN PVOID Argument2, IN PCLASS_INIT_DATA InitializationData) |
| VOID NTAPI | ScsiClassInitializeSrbLookasideList (IN PDEVICE_EXTENSION DeviceExtension, IN ULONG NumberElements) |
| NTSTATUS NTAPI | ScsiClassInternalIoControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) |
| BOOLEAN NTAPI | ScsiClassInterpretSenseInfo (IN PDEVICE_OBJECT DeviceObject, IN PSCSI_REQUEST_BLOCK Srb, IN UCHAR MajorFunctionCode, IN ULONG IoDeviceCode, IN ULONG RetryCount, OUT NTSTATUS *Status) |
| NTSTATUS NTAPI | ScsiClassIoComplete (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) |
| NTSTATUS NTAPI | ScsiClassIoCompleteAssociated (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) |
| ULONG NTAPI | ScsiClassModeSense (IN PDEVICE_OBJECT DeviceObject, IN PCHAR ModeSenseBuffer, IN ULONG Length, IN UCHAR PageMode) |
| ULONG NTAPI | ScsiClassQueryTimeOutRegistryValue (IN PUNICODE_STRING RegistryPath) |
| NTSTATUS NTAPI | ScsiClassReadDriveCapacity (IN PDEVICE_OBJECT DeviceObject) |
| VOID NTAPI | ScsiClassReleaseQueue (IN PDEVICE_OBJECT DeviceObject) |
| NTSTATUS NTAPI | ScsiClassSendSrbAsynchronous (PDEVICE_OBJECT DeviceObject, PSCSI_REQUEST_BLOCK Srb, PIRP Irp, PVOID BufferAddress, ULONG BufferLength, BOOLEAN WriteToDevice) |
| NTSTATUS NTAPI | ScsiClassSendSrbSynchronous (PDEVICE_OBJECT DeviceObject, PSCSI_REQUEST_BLOCK Srb, PVOID BufferAddress, ULONG BufferLength, BOOLEAN WriteToDevice) |
| VOID NTAPI | ScsiClassSplitRequest (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN ULONG MaximumBytes) |
| NTSTATUS NTAPI | ScsiClassCheckVerifyComplete (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) |
Variables |
| IO_COMPLETION_ROUTINE | ScsiClassAsynchronousCompletion |