ReactOS  0.4.15-dev-1197-g8081ba9
srb.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _ACCESS_RANGE
 
struct  _PORT_CONFIGURATION_INFORMATION
 
struct  _SCSI_SUPPORTED_CONTROL_TYPE_LIST
 
struct  _SCSI_REQUEST_BLOCK
 
struct  _SCSI_WMI_REQUEST_BLOCK
 
struct  _SCSI_POWER_REQUEST_BLOCK
 
struct  _STOR_DEVICE_CAPABILITIES
 
struct  _SCSI_PNP_REQUEST_BLOCK
 
struct  _SRBEX_DATA
 
struct  _SRBEX_DATA_BIDIRECTIONAL
 
struct  _SRBEX_DATA_SCSI_CDB16
 
struct  _SRBEX_DATA_SCSI_CDB32
 
struct  _SRBEX_DATA_SCSI_CDB_VAR
 
struct  _SRBEX_DATA_WMI
 
struct  _SRBEX_DATA_POWER
 
struct  _SRBEX_DATA_PNP
 
struct  _SRBEX_DATA_IO_INFO
 
struct  _STORAGE_REQUEST_BLOCK_HEADER
 
struct  _HW_INITIALIZATION_DATA
 

Macros

#define SCSI_MAXIMUM_LOGICAL_UNITS   8
 
#define SCSI_MAXIMUM_TARGETS_PER_BUS   128
 
#define SCSI_MAXIMUM_LUNS_PER_TARGET   255
 
#define SCSI_MAXIMUM_BUSES   8
 
#define SCSI_MINIMUM_PHYSICAL_BREAKS   16
 
#define SCSI_MAXIMUM_PHYSICAL_BREAKS   255
 
#define SCSI_MAXIMUM_TARGETS   8
 
#define SCSI_DMA64_MINIPORT_SUPPORTED   0x01
 
#define SCSI_DMA64_SYSTEM_SUPPORTED   0x80
 
#define SP_UNINITIALIZED_VALUE   ((ULONG) ~0)
 
#define SP_UNTAGGED   ((UCHAR) ~0)
 
#define SRBEV_BUS_RESET   0x0001
 
#define SRBEV_SCSI_ASYNC_NOTIFICATION   0x0002
 
#define MAXIMUM_CDB_SIZE   12
 
#define DebugPrint(x)
 
#define SCSI_COMBINE_BUS_TARGET(Bus, Target)
 
#define SCSI_DECODE_BUS_TARGET(Value, Bus, Target)
 
#define SRB_FUNCTION_EXECUTE_SCSI   0x00
 
#define SRB_FUNCTION_CLAIM_DEVICE   0x01
 
#define SRB_FUNCTION_IO_CONTROL   0x02
 
#define SRB_FUNCTION_RECEIVE_EVENT   0x03
 
#define SRB_FUNCTION_RELEASE_QUEUE   0x04
 
#define SRB_FUNCTION_ATTACH_DEVICE   0x05
 
#define SRB_FUNCTION_RELEASE_DEVICE   0x06
 
#define SRB_FUNCTION_SHUTDOWN   0x07
 
#define SRB_FUNCTION_FLUSH   0x08
 
#define SRB_FUNCTION_PROTOCOL_COMMAND   0x09
 
#define SRB_FUNCTION_ABORT_COMMAND   0x10
 
#define SRB_FUNCTION_RELEASE_RECOVERY   0x11
 
#define SRB_FUNCTION_RESET_BUS   0x12
 
#define SRB_FUNCTION_RESET_DEVICE   0x13
 
#define SRB_FUNCTION_TERMINATE_IO   0x14
 
#define SRB_FUNCTION_FLUSH_QUEUE   0x15
 
#define SRB_FUNCTION_REMOVE_DEVICE   0x16
 
#define SRB_FUNCTION_WMI   0x17
 
#define SRB_FUNCTION_LOCK_QUEUE   0x18
 
#define SRB_FUNCTION_UNLOCK_QUEUE   0x19
 
#define SRB_FUNCTION_QUIESCE_DEVICE   0x1a
 
#define SRB_FUNCTION_RESET_LOGICAL_UNIT   0x20
 
#define SRB_FUNCTION_SET_LINK_TIMEOUT   0x21
 
#define SRB_FUNCTION_LINK_TIMEOUT_OCCURRED   0x22
 
#define SRB_FUNCTION_LINK_TIMEOUT_COMPLETE   0x23
 
#define SRB_FUNCTION_POWER   0x24
 
#define SRB_FUNCTION_PNP   0x25
 
#define SRB_FUNCTION_DUMP_POINTERS   0x26
 
#define SRB_FUNCTION_FREE_DUMP_POINTERS   0x27
 
#define SRB_FUNCTION_STORAGE_REQUEST_BLOCK   0x28
 
#define SRB_FUNCTION_CRYPTO_OPERATION   0x29
 
#define SRB_FUNCTION_GET_DUMP_INFO   0x2a
 
#define SRB_FUNCTION_FREE_DUMP_INFO   0x2b
 
#define SRB_STATUS_PENDING   0x00
 
#define SRB_STATUS_SUCCESS   0x01
 
#define SRB_STATUS_ABORTED   0x02
 
#define SRB_STATUS_ABORT_FAILED   0x03
 
#define SRB_STATUS_ERROR   0x04
 
#define SRB_STATUS_BUSY   0x05
 
#define SRB_STATUS_INVALID_REQUEST   0x06
 
#define SRB_STATUS_INVALID_PATH_ID   0x07
 
#define SRB_STATUS_NO_DEVICE   0x08
 
#define SRB_STATUS_TIMEOUT   0x09
 
#define SRB_STATUS_SELECTION_TIMEOUT   0x0A
 
#define SRB_STATUS_COMMAND_TIMEOUT   0x0B
 
#define SRB_STATUS_MESSAGE_REJECTED   0x0D
 
#define SRB_STATUS_BUS_RESET   0x0E
 
#define SRB_STATUS_PARITY_ERROR   0x0F
 
#define SRB_STATUS_REQUEST_SENSE_FAILED   0x10
 
#define SRB_STATUS_NO_HBA   0x11
 
#define SRB_STATUS_DATA_OVERRUN   0x12
 
#define SRB_STATUS_UNEXPECTED_BUS_FREE   0x13
 
#define SRB_STATUS_PHASE_SEQUENCE_FAILURE   0x14
 
#define SRB_STATUS_BAD_SRB_BLOCK_LENGTH   0x15
 
#define SRB_STATUS_REQUEST_FLUSHED   0x16
 
#define SRB_STATUS_INVALID_LUN   0x20
 
#define SRB_STATUS_INVALID_TARGET_ID   0x21
 
#define SRB_STATUS_BAD_FUNCTION   0x22
 
#define SRB_STATUS_ERROR_RECOVERY   0x23
 
#define SRB_STATUS_NOT_POWERED   0x24
 
#define SRB_STATUS_LINK_DOWN   0x25
 
#define SRB_STATUS_INSUFFICIENT_RESOURCES   0x26
 
#define SRB_STATUS_THROTTLED_REQUEST   0x27
 
#define SRB_STATUS_INTERNAL_ERROR   0x30
 
#define SRB_STATUS_QUEUE_FROZEN   0x40
 
#define SRB_STATUS_AUTOSENSE_VALID   0x80
 
#define SRB_STATUS(Status)   (Status & ~(SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_QUEUE_FROZEN))
 
#define SRB_FLAGS_QUEUE_ACTION_ENABLE   0x00000002
 
#define SRB_FLAGS_DISABLE_DISCONNECT   0x00000004
 
#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER   0x00000008
 
#define SRB_FLAGS_BYPASS_FROZEN_QUEUE   0x00000010
 
#define SRB_FLAGS_DISABLE_AUTOSENSE   0x00000020
 
#define SRB_FLAGS_DATA_IN   0x00000040
 
#define SRB_FLAGS_DATA_OUT   0x00000080
 
#define SRB_FLAGS_NO_DATA_TRANSFER   0x00000000
 
#define SRB_FLAGS_UNSPECIFIED_DIRECTION   (SRB_FLAGS_DATA_IN | SRB_FLAGS_DATA_OUT)
 
#define SRB_FLAGS_NO_QUEUE_FREEZE   0x00000100
 
#define SRB_FLAGS_ADAPTER_CACHE_ENABLE   0x00000200
 
#define SRB_FLAGS_FREE_SENSE_BUFFER   0x00000400
 
#define SRB_FLAGS_D3_PROCESSING   0x00000800
 
#define SRB_FLAGS_SEQUENTIAL_REQUIRED   0x00001000
 
#define SRB_FLAGS_IS_ACTIVE   0x00010000
 
#define SRB_FLAGS_ALLOCATED_FROM_ZONE   0x00020000
 
#define SRB_FLAGS_SGLIST_FROM_POOL   0x00040000
 
#define SRB_FLAGS_BYPASS_LOCKED_QUEUE   0x00080000
 
#define SRB_FLAGS_NO_KEEP_AWAKE   0x00100000
 
#define SRB_FLAGS_PORT_DRIVER_ALLOCSENSE   0x00200000
 
#define SRB_FLAGS_PORT_DRIVER_SENSEHASPORT   0x00400000
 
#define SRB_FLAGS_DONT_START_NEXT_PACKET   0x00800000
 
#define SRB_FLAGS_PORT_DRIVER_RESERVED   0x0F000000
 
#define SRB_FLAGS_CLASS_DRIVER_RESERVED   0xF0000000
 
#define SRB_SIMPLE_TAG_REQUEST   0x20
 
#define SRB_HEAD_OF_QUEUE_TAG_REQUEST   0x21
 
#define SRB_ORDERED_QUEUE_TAG_REQUEST   0x22
 
#define SRB_WMI_FLAGS_ADAPTER_REQUEST   0x0001
 
#define SRB_POWER_FLAGS_ADAPTER_REQUEST   0x0001
 
#define SRB_PNP_FLAGS_ADAPTER_REQUEST   0x0001
 
#define SP_BUS_PARITY_ERROR   0x0001
 
#define SP_UNEXPECTED_DISCONNECT   0x0002
 
#define SP_INVALID_RESELECTION   0x0003
 
#define SP_BUS_TIME_OUT   0x0004
 
#define SP_PROTOCOL_ERROR   0x0005
 
#define SP_INTERNAL_ADAPTER_ERROR   0x0006
 
#define SP_REQUEST_TIMEOUT   0x0007
 
#define SP_IRQ_NOT_RESPONDING   0x0008
 
#define SP_BAD_FW_WARNING   0x0009
 
#define SP_BAD_FW_ERROR   0x000a
 
#define SP_LOST_WMI_MINIPORT_REQUEST   0x000b
 
#define SP_VER_TRACE_SUPPORT   0x0010
 
#define SP_RETURN_NOT_FOUND   0
 
#define SP_RETURN_FOUND   1
 
#define SP_RETURN_ERROR   2
 
#define SP_RETURN_BAD_CONFIG   3
 
#define CONFIG_INFO_VERSION_2   sizeof(PORT_CONFIGURATION_INFORMATION)
 
#define SCSI_REQUEST_BLOCK_SIZE   sizeof(SCSI_REQUEST_BLOCK)
 
#define SRB_ALIGN
 
#define POINTER_ALIGN
 
#define SRBEX_DATA_BIDIRECTIONAL_LENGTH   ((2 * sizeof(ULONG)) + sizeof(PVOID))
 
#define SRBEX_DATA_SCSI_CDB16_LENGTH   ((20 * sizeof(UCHAR)) + sizeof(ULONG) + sizeof(PVOID))
 
#define SRBEX_DATA_SCSI_CDB32_LENGTH   ((36 * sizeof(UCHAR)) + sizeof(ULONG) + sizeof(PVOID))
 
#define SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MIN   ((4 * sizeof(UCHAR)) + (3 * sizeof(ULONG)) + sizeof(PVOID))
 
#define SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MAX   0xffffffffUL
 
#define SRBEX_DATA_WMI_LENGTH   ((4 * sizeof(UCHAR)) + sizeof(ULONG) + sizeof(PVOID))
 
#define SRBEX_DATA_POWER_LENGTH   ((4 * sizeof(UCHAR)) + sizeof(STOR_DEVICE_POWER_STATE) + sizeof(STOR_POWER_ACTION))
 
#define SRBEX_DATA_PNP_LENGTH   ((4 * sizeof(UCHAR)) + sizeof(STOR_PNP_ACTION) + (2 * sizeof(ULONG)))
 
#define SRBEX_DATA_IO_INFO_LENGTH   ((5 * sizeof(ULONG)) + (4 * sizeof(UCHAR)))
 
#define REQUEST_INFO_NO_CACHE_FLAG   0x00000001
 
#define REQUEST_INFO_PAGING_IO_FLAG   0x00000002
 
#define REQUEST_INFO_SEQUENTIAL_IO_FLAG   0x00000004
 
#define REQUEST_INFO_TEMPORARY_FLAG   0x00000008
 
#define REQUEST_INFO_WRITE_THROUGH_FLAG   0x00000010
 
#define REQUEST_INFO_HYBRID_WRITE_THROUGH_FLAG   0x00000020
 
#define REQUEST_INFO_NO_FILE_OBJECT_FLAG   0x00000040
 
#define REQUEST_INFO_VOLSNAP_IO_FLAG   0x00000080
 
#define REQUEST_INFO_STREAM_FLAG   0x00000100
 
#define REQUEST_INFO_VALID_CACHEPRIORITY_FLAG   0x80000000
 
#define SRB_SIGNATURE   0x53524258
 
#define STORAGE_REQUEST_BLOCK_VERSION_1   0x1
 
#define SRB_TYPE_SCSI_REQUEST_BLOCK   0
 
#define SRB_TYPE_STORAGE_REQUEST_BLOCK   1
 
#define STORAGE_ADDRESS_TYPE_BTL8   0
 
#define SCSIPORT_API   DECLSPEC_IMPORT
 
#define ScsiPortConvertPhysicalAddressToUlong(Address)   ((Address).LowPart)
 
#define ScsiPortConvertPhysicalAddressToULongPtr(Address)   ((ULONG_PTR)((Address).QuadPart))
 

Typedefs

typedef PHYSICAL_ADDRESS SCSI_PHYSICAL_ADDRESS
 
typedef PHYSICAL_ADDRESSPSCSI_PHYSICAL_ADDRESS
 
typedef struct _ACCESS_RANGE ACCESS_RANGE
 
typedef struct _ACCESS_RANGEPACCESS_RANGE
 
typedef struct _PORT_CONFIGURATION_INFORMATION PORT_CONFIGURATION_INFORMATION
 
typedef struct _PORT_CONFIGURATION_INFORMATIONPPORT_CONFIGURATION_INFORMATION
 
typedef enum _SCSI_ADAPTER_CONTROL_TYPE SCSI_ADAPTER_CONTROL_TYPE
 
typedef enum _SCSI_ADAPTER_CONTROL_TYPEPSCSI_ADAPTER_CONTROL_TYPE
 
typedef enum _SCSI_ADAPTER_CONTROL_STATUS SCSI_ADAPTER_CONTROL_STATUS
 
typedef enum _SCSI_ADAPTER_CONTROL_STATUSPSCSI_ADAPTER_CONTROL_STATUS
 
typedef struct _SCSI_SUPPORTED_CONTROL_TYPE_LIST SCSI_SUPPORTED_CONTROL_TYPE_LIST
 
typedef struct _SCSI_SUPPORTED_CONTROL_TYPE_LISTPSCSI_SUPPORTED_CONTROL_TYPE_LIST
 
typedef struct _SCSI_REQUEST_BLOCK SCSI_REQUEST_BLOCK
 
typedef struct _SCSI_REQUEST_BLOCKPSCSI_REQUEST_BLOCK
 
typedef struct _SCSI_WMI_REQUEST_BLOCK SCSI_WMI_REQUEST_BLOCK
 
typedef struct _SCSI_WMI_REQUEST_BLOCKPSCSI_WMI_REQUEST_BLOCK
 
typedef enum _STOR_DEVICE_POWER_STATE STOR_DEVICE_POWER_STATE
 
typedef enum _STOR_DEVICE_POWER_STATEPSTOR_DEVICE_POWER_STATE
 
typedef enum _STOR_POWER_ACTION STOR_POWER_ACTION
 
typedef enum _STOR_POWER_ACTIONPSTOR_POWER_ACTION
 
typedef struct _SCSI_POWER_REQUEST_BLOCK SCSI_POWER_REQUEST_BLOCK
 
typedef struct _SCSI_POWER_REQUEST_BLOCKPSCSI_POWER_REQUEST_BLOCK
 
typedef enum _STOR_PNP_ACTION STOR_PNP_ACTION
 
typedef enum _STOR_PNP_ACTIONPSTOR_PNP_ACTION
 
typedef struct _STOR_DEVICE_CAPABILITIES STOR_DEVICE_CAPABILITIES
 
typedef struct _STOR_DEVICE_CAPABILITIESPSTOR_DEVICE_CAPABILITIES
 
typedef struct _SCSI_PNP_REQUEST_BLOCK SCSI_PNP_REQUEST_BLOCK
 
typedef struct _SCSI_PNP_REQUEST_BLOCKPSCSI_PNP_REQUEST_BLOCK
 
typedef enum _SRBEXDATATYPE SRBEXDATATYPE
 
typedef enum _SRBEXDATATYPEPSRBEXDATATYPE
 
typedef struct SRB_ALIGN _SRBEX_DATA SRBEX_DATA
 
typedef struct SRB_ALIGN _SRBEX_DATAPSRBEX_DATA
 
typedef struct SRB_ALIGN _SRBEX_DATA_BIDIRECTIONAL SRBEX_DATA_BIDIRECTIONAL
 
typedef struct SRB_ALIGN _SRBEX_DATA_BIDIRECTIONALPSRBEX_DATA_BIDIRECTIONAL
 
typedef struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB16 SRBEX_DATA_SCSI_CDB16
 
typedef struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB16PSRBEX_DATA_SCSI_CDB16
 
typedef struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB32 SRBEX_DATA_SCSI_CDB32
 
typedef struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB32PSRBEX_DATA_SCSI_CDB32
 
typedef struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB_VAR SRBEX_DATA_SCSI_CDB_VAR
 
typedef struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB_VARPSRBEX_DATA_SCSI_CDB_VAR
 
typedef struct SRB_ALIGN _SRBEX_DATA_WMI SRBEX_DATA_WMI
 
typedef struct SRB_ALIGN _SRBEX_DATA_WMIPSRBEX_DATA_WMI
 
typedef struct SRB_ALIGN _SRBEX_DATA_POWER SRBEX_DATA_POWER
 
typedef struct SRB_ALIGN _SRBEX_DATA_POWERPSRBEX_DATA_POWER
 
typedef struct SRB_ALIGN _SRBEX_DATA_PNP SRBEX_DATA_PNP
 
typedef struct SRB_ALIGN _SRBEX_DATA_PNPPSRBEX_DATA_PNP
 
typedef struct SRB_ALIGN _SRBEX_DATA_IO_INFO SRBEX_DATA_IO_INFO
 
typedef struct SRB_ALIGN _SRBEX_DATA_IO_INFOPSRBEX_DATA_IO_INFO
 
typedef struct SRB_ALIGN _STORAGE_REQUEST_BLOCK_HEADER STORAGE_REQUEST_BLOCK_HEADER
 
typedef struct SRB_ALIGN _STORAGE_REQUEST_BLOCK_HEADERPSTORAGE_REQUEST_BLOCK_HEADER
 
typedef _Must_inspect_result_ BOOLEAN(NTAPIPHW_INITIALIZE) (_In_ PVOID DeviceExtension)
 
typedef _Must_inspect_result_ BOOLEAN(NTAPIPHW_STARTIO) (_In_ PVOID DeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb)
 
typedef _Must_inspect_result_ BOOLEAN(NTAPIPHW_INTERRUPT) (_In_ PVOID DeviceExtension)
 
typedef VOID(NTAPIPHW_TIMER) (_In_ PVOID DeviceExtension)
 
typedef VOID(NTAPIPHW_DMA_STARTED) (_In_ PVOID DeviceExtension)
 
typedef _Must_inspect_result_ ULONG(NTAPIPHW_FIND_ADAPTER) (_In_ PVOID DeviceExtension, _In_ PVOID HwContext, _In_ PVOID BusInformation, _In_ PCHAR ArgumentString, _Inout_ PPORT_CONFIGURATION_INFORMATION ConfigInfo, _Out_ PBOOLEAN Again)
 
typedef _Must_inspect_result_ BOOLEAN(NTAPIPHW_RESET_BUS) (_In_ PVOID DeviceExtension, _In_ ULONG PathId)
 
typedef _Must_inspect_result_ BOOLEAN(NTAPIPHW_ADAPTER_STATE) (_In_ PVOID DeviceExtension, _In_ PVOID Context, _In_ BOOLEAN SaveState)
 
typedef _Must_inspect_result_ SCSI_ADAPTER_CONTROL_STATUS(NTAPIPHW_ADAPTER_CONTROL) (_In_ PVOID DeviceExtension, _In_ SCSI_ADAPTER_CONTROL_TYPE ControlType, _In_ PVOID Parameters)
 
typedef enum _SCSI_NOTIFICATION_TYPE SCSI_NOTIFICATION_TYPE
 
typedef enum _SCSI_NOTIFICATION_TYPEPSCSI_NOTIFICATION_TYPE
 
typedef struct _HW_INITIALIZATION_DATA HW_INITIALIZATION_DATA
 
typedef struct _HW_INITIALIZATION_DATAPHW_INITIALIZATION_DATA
 

Enumerations

enum  _SCSI_ADAPTER_CONTROL_TYPE {
  ScsiQuerySupportedControlTypes = 0, ScsiStopAdapter, ScsiRestartAdapter, ScsiSetBootConfig,
  ScsiSetRunningConfig, ScsiAdapterControlMax, MakeAdapterControlTypeSizeOfUlong = 0xffffffff, ScsiQuerySupportedControlTypes = 0,
  ScsiStopAdapter, ScsiRestartAdapter, ScsiSetBootConfig, ScsiSetRunningConfig,
  ScsiAdapterControlMax, MakeAdapterControlTypeSizeOfUlong = 0xffffffff, ScsiQuerySupportedControlTypes = 0, ScsiStopAdapter,
  ScsiRestartAdapter, ScsiSetBootConfig, ScsiSetRunningConfig, ScsiAdapterControlMax,
  MakeAdapterControlTypeSizeOfUlong = 0xffffffff
}
 
enum  _SCSI_ADAPTER_CONTROL_STATUS {
  ScsiAdapterControlSuccess = 0, ScsiAdapterControlUnsuccessful, ScsiAdapterControlSuccess = 0, ScsiAdapterControlUnsuccessful,
  ScsiAdapterControlSuccess = 0, ScsiAdapterControlUnsuccessful
}
 
enum  _STOR_DEVICE_POWER_STATE {
  StorPowerDeviceUnspecified = 0, StorPowerDeviceD0, StorPowerDeviceD1, StorPowerDeviceD2,
  StorPowerDeviceD3, StorPowerDeviceMaximum, StorPowerDeviceUnspecified = 0, StorPowerDeviceD0,
  StorPowerDeviceD1, StorPowerDeviceD2, StorPowerDeviceD3, StorPowerDeviceMaximum
}
 
enum  _STOR_POWER_ACTION {
  StorPowerActionNone = 0, StorPowerActionReserved, StorPowerActionSleep, StorPowerActionHibernate,
  StorPowerActionShutdown, StorPowerActionShutdownReset, StorPowerActionShutdownOff, StorPowerActionWarmEject,
  StorPowerActionNone = 0, StorPowerActionReserved, StorPowerActionSleep, StorPowerActionHibernate,
  StorPowerActionShutdown, StorPowerActionShutdownReset, StorPowerActionShutdownOff, StorPowerActionWarmEject
}
 
enum  _STOR_PNP_ACTION {
  StorStartDevice = 0x0, StorRemoveDevice = 0x2, StorStopDevice = 0x4, StorQueryCapabilities = 0x9,
  StorQueryResourceRequirements = 0xB, StorFilterResourceRequirements = 0xD, StorSurpriseRemoval = 0x17, StorStartDevice = 0x0,
  StorRemoveDevice = 0x2, StorStopDevice = 0x4, StorQueryCapabilities = 0x9, StorQueryResourceRequirements = 0xB,
  StorFilterResourceRequirements = 0xD, StorSurpriseRemoval = 0x17
}
 
enum  _SRBEXDATATYPE {
  SrbExDataTypeUnknown = 0, SrbExDataTypeBidirectional, SrbExDataTypeScsiCdb16 = 0x40, SrbExDataTypeScsiCdb32,
  SrbExDataTypeScsiCdbVar, SrbExDataTypeWmi = 0x60, SrbExDataTypePower, SrbExDataTypePnP,
  SrbExDataTypeIoInfo = 0x80, SrbExDataTypeMSReservedStart = 0xf0000000, SrbExDataTypeReserved = 0xffffffff
}
 
enum  _SCSI_NOTIFICATION_TYPE {
  RequestComplete, NextRequest, NextLuRequest, ResetDetected,
  CallDisableInterrupts, CallEnableInterrupts, RequestTimerCall, BusChangeDetected,
  WMIEvent, WMIReregister, RequestComplete, NextRequest,
  NextLuRequest, ResetDetected, CallDisableInterrupts, CallEnableInterrupts,
  RequestTimerCall, BusChangeDetected, WMIEvent, WMIReregister,
  LinkUp, LinkDown, QueryTickCount, BufferOverrunDetected,
  TraceNotification, RequestComplete, NextRequest, NextLuRequest,
  ResetDetected, _obsolete1, _obsolete2, RequestTimerCall,
  BusChangeDetected, WMIEvent, WMIReregister, LinkUp,
  LinkDown, QueryTickCount, BufferOverrunDetected, TraceNotification,
  GetExtendedFunctionTable, EnablePassiveInitialization = 0x1000, InitializeDpc, IssueDpc,
  AcquireSpinLock, ReleaseSpinLock
}
 

Functions

typedef _Struct_size_bytes_ (SrbLength) struct SRB_ALIGN _STORAGE_REQUEST_BLOCK
 
SCSIPORT_API VOID NTAPI ScsiPortCompleteRequest (_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ UCHAR SrbStatus)
 
_Must_inspect_result_ SCSIPORT_API ULONG NTAPI ScsiPortConvertPhysicalAddressToUlong (_In_ SCSI_PHYSICAL_ADDRESS Address)
 
_Must_inspect_result_ SCSIPORT_API SCSI_PHYSICAL_ADDRESS NTAPI ScsiPortConvertUlongToPhysicalAddress (_In_ ULONG_PTR UlongAddress)
 
SCSIPORT_API VOID NTAPI ScsiPortFlushDma (_In_ PVOID DeviceExtension)
 
SCSIPORT_API VOID NTAPI ScsiPortFreeDeviceBase (_In_ PVOID HwDeviceExtension, _In_ PVOID MappedAddress)
 
_Must_inspect_result_ SCSIPORT_API ULONG NTAPI ScsiPortGetBusData (_In_ PVOID DeviceExtension, _In_ ULONG BusDataType, _In_ ULONG SystemIoBusNumber, _In_ ULONG SlotNumber, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Length)
 
_Must_inspect_result_ SCSIPORT_API PVOID NTAPI ScsiPortGetDeviceBase (_In_ PVOID HwDeviceExtension, _In_ INTERFACE_TYPE BusType, _In_ ULONG SystemIoBusNumber, _In_ SCSI_PHYSICAL_ADDRESS IoAddress, _In_ ULONG NumberOfBytes, _In_ BOOLEAN InIoSpace)
 
_Must_inspect_result_ SCSIPORT_API PVOID NTAPI ScsiPortGetLogicalUnit (_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
 
_Must_inspect_result_ SCSIPORT_API SCSI_PHYSICAL_ADDRESS NTAPI ScsiPortGetPhysicalAddress (_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _In_ PVOID VirtualAddress, _Out_ ULONG *Length)
 
_Must_inspect_result_ SCSIPORT_API PSCSI_REQUEST_BLOCK NTAPI ScsiPortGetSrb (_In_ PVOID DeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ LONG QueueTag)
 
_Must_inspect_result_ SCSIPORT_API PVOID NTAPI ScsiPortGetUncachedExtension (_In_ PVOID HwDeviceExtension, _In_ PPORT_CONFIGURATION_INFORMATION ConfigInfo, _In_ ULONG NumberOfBytes)
 
_Must_inspect_result_ SCSIPORT_API PVOID NTAPI ScsiPortGetVirtualAddress (_In_ PVOID HwDeviceExtension, _In_ SCSI_PHYSICAL_ADDRESS PhysicalAddress)
 
_Must_inspect_result_ _IRQL_requires_max_ (PASSIVE_LEVEL) SCSIPORT_API ULONG NTAPI ScsiPortInitialize(_In_ PVOID Argument1
 
SCSIPORT_API VOID NTAPI ScsiPortIoMapTransfer (_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _In_ PVOID LogicalAddress, _In_ ULONG Length)
 
SCSIPORT_API VOID NTAPI ScsiPortLogError (_In_ PVOID HwDeviceExtension, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG ErrorCode, _In_ ULONG UniqueId)
 
SCSIPORT_API VOID __cdecl ScsiPortNotification (_In_ SCSI_NOTIFICATION_TYPE NotificationType, _In_ PVOID HwDeviceExtension,...)
 
SCSIPORT_API VOID NTAPI ScsiPortQuerySystemTime (_Out_ PLARGE_INTEGER CurrentTime)
 
_Must_inspect_result_ SCSIPORT_API ULONG NTAPI ScsiPortSetBusDataByOffset (_In_ PVOID DeviceExtension, _In_ ULONG BusDataType, _In_ ULONG SystemIoBusNumber, _In_ ULONG SlotNumber, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
 
SCSIPORT_API VOID NTAPI ScsiPortStallExecution (_In_ ULONG Delay)
 
_Must_inspect_result_ SCSIPORT_API BOOLEAN NTAPI ScsiPortValidateRange (_In_ PVOID HwDeviceExtension, _In_ INTERFACE_TYPE BusType, _In_ ULONG SystemIoBusNumber, _In_ SCSI_PHYSICAL_ADDRESS IoAddress, _In_ ULONG NumberOfBytes, _In_ BOOLEAN InIoSpace)
 
SCSIPORT_API VOID __cdecl ScsiDebugPrint (ULONG DebugPrintLevel, PCCHAR DebugMessage,...)
 
_Must_inspect_result_ SCSIPORT_API UCHAR NTAPI ScsiPortReadPortUchar (_In_ PUCHAR Port)
 
_Must_inspect_result_ SCSIPORT_API ULONG NTAPI ScsiPortReadPortUlong (_In_ PULONG Port)
 
_Must_inspect_result_ SCSIPORT_API USHORT NTAPI ScsiPortReadPortUshort (_In_ PUSHORT Port)
 
SCSIPORT_API VOID NTAPI ScsiPortReadPortBufferUchar (_In_ PUCHAR Port, _In_ PUCHAR Buffer, _In_ ULONG Count)
 
SCSIPORT_API VOID NTAPI ScsiPortReadPortBufferUlong (_In_ PULONG Port, _In_ PULONG Buffer, _In_ ULONG Count)
 
SCSIPORT_API VOID NTAPI ScsiPortReadPortBufferUshort (_In_ PUSHORT Port, _In_ PUSHORT Buffer, _In_ ULONG Count)
 
_Must_inspect_result_ SCSIPORT_API UCHAR NTAPI ScsiPortReadRegisterUchar (_In_ PUCHAR Register)
 
_Must_inspect_result_ SCSIPORT_API ULONG NTAPI ScsiPortReadRegisterUlong (_In_ PULONG Register)
 
_Must_inspect_result_ SCSIPORT_API USHORT NTAPI ScsiPortReadRegisterUshort (_In_ PUSHORT Register)
 
SCSIPORT_API VOID NTAPI ScsiPortReadRegisterBufferUchar (_In_ PUCHAR Register, _In_ PUCHAR Buffer, _In_ ULONG Count)
 
SCSIPORT_API VOID NTAPI ScsiPortReadRegisterBufferUlong (_In_ PULONG Register, _In_ PULONG Buffer, _In_ ULONG Count)
 
SCSIPORT_API VOID NTAPI ScsiPortReadRegisterBufferUshort (_In_ PUSHORT Register, _In_ PUSHORT Buffer, _In_ ULONG Count)
 
SCSIPORT_API VOID NTAPI ScsiPortWritePortUchar (_In_ PUCHAR Port, _In_ UCHAR Value)
 
SCSIPORT_API VOID NTAPI ScsiPortWritePortUlong (_In_ PULONG Port, _In_ ULONG Value)
 
SCSIPORT_API VOID NTAPI ScsiPortWritePortUshort (_In_ PUSHORT Port, _In_ USHORT Value)
 
SCSIPORT_API VOID NTAPI ScsiPortWritePortBufferUchar (_In_ PUCHAR Port, _In_ PUCHAR Buffer, _In_ ULONG Count)
 
SCSIPORT_API VOID NTAPI ScsiPortWritePortBufferUlong (_In_ PULONG Port, _In_ PULONG Buffer, _In_ ULONG Count)
 
SCSIPORT_API VOID NTAPI ScsiPortWritePortBufferUshort (_In_ PUSHORT Port, _In_ PUSHORT Buffer, _In_ ULONG Count)
 
SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterUchar (_In_ PUCHAR Register, _In_ UCHAR Value)
 
SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterUlong (_In_ PULONG Register, _In_ ULONG Value)
 
SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterUshort (_In_ PUSHORT Register, _In_ USHORT Value)
 
SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterBufferUchar (_In_ PUCHAR Register, _In_ PUCHAR Buffer, _In_ ULONG Count)
 
SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterBufferUlong (_In_ PULONG Register, _In_ PULONG Buffer, _In_ ULONG Count)
 
SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterBufferUshort (_In_ PUSHORT Register, _In_ PUSHORT Buffer, _In_ ULONG Count)
 
SCSIPORT_API VOID NTAPI ScsiPortMoveMemory (_In_ PVOID WriteBuffer, _In_ PVOID ReadBuffer, _In_ ULONG Length)
 

Variables

 STORAGE_REQUEST_BLOCK
 
PSTORAGE_REQUEST_BLOCK
 
_Must_inspect_result_ _In_ PVOID Argument2
 
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATAHwInitializationData
 
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA _In_ PVOID HwContext
 

Macro Definition Documentation

◆ CONFIG_INFO_VERSION_2

#define CONFIG_INFO_VERSION_2   sizeof(PORT_CONFIGURATION_INFORMATION)

Definition at line 262 of file srb.h.

◆ DebugPrint

#define DebugPrint (   x)

Definition at line 57 of file srb.h.

◆ MAXIMUM_CDB_SIZE

#define MAXIMUM_CDB_SIZE   12

Definition at line 52 of file srb.h.

◆ POINTER_ALIGN

#define POINTER_ALIGN

Definition at line 444 of file srb.h.

◆ REQUEST_INFO_HYBRID_WRITE_THROUGH_FLAG

#define REQUEST_INFO_HYBRID_WRITE_THROUGH_FLAG   0x00000020

Definition at line 581 of file srb.h.

◆ REQUEST_INFO_NO_CACHE_FLAG

#define REQUEST_INFO_NO_CACHE_FLAG   0x00000001

Definition at line 576 of file srb.h.

◆ REQUEST_INFO_NO_FILE_OBJECT_FLAG

#define REQUEST_INFO_NO_FILE_OBJECT_FLAG   0x00000040

Definition at line 585 of file srb.h.

◆ REQUEST_INFO_PAGING_IO_FLAG

#define REQUEST_INFO_PAGING_IO_FLAG   0x00000002

Definition at line 577 of file srb.h.

◆ REQUEST_INFO_SEQUENTIAL_IO_FLAG

#define REQUEST_INFO_SEQUENTIAL_IO_FLAG   0x00000004

Definition at line 578 of file srb.h.

◆ REQUEST_INFO_STREAM_FLAG

#define REQUEST_INFO_STREAM_FLAG   0x00000100

Definition at line 587 of file srb.h.

◆ REQUEST_INFO_TEMPORARY_FLAG

#define REQUEST_INFO_TEMPORARY_FLAG   0x00000008

Definition at line 579 of file srb.h.

◆ REQUEST_INFO_VALID_CACHEPRIORITY_FLAG

#define REQUEST_INFO_VALID_CACHEPRIORITY_FLAG   0x80000000

Definition at line 591 of file srb.h.

◆ REQUEST_INFO_VOLSNAP_IO_FLAG

#define REQUEST_INFO_VOLSNAP_IO_FLAG   0x00000080

Definition at line 586 of file srb.h.

◆ REQUEST_INFO_WRITE_THROUGH_FLAG

#define REQUEST_INFO_WRITE_THROUGH_FLAG   0x00000010

Definition at line 580 of file srb.h.

◆ SCSI_COMBINE_BUS_TARGET

#define SCSI_COMBINE_BUS_TARGET (   Bus,
  Target 
)
Value:
( \
((((UCHAR) (Target)) & ~(0x20 - 1)) << 8) | \
(((UCHAR) (Bus)) << 5) | \
(((UCHAR) (Target)) & (0x20 - 1)))
_Must_inspect_result_ typedef _In_ ULONG _In_ BOOLEAN Target
Definition: iotypes.h:1088
unsigned char UCHAR
Definition: xmlstorage.h:181

Definition at line 60 of file srb.h.

◆ SCSI_DECODE_BUS_TARGET

#define SCSI_DECODE_BUS_TARGET (   Value,
  Bus,
  Target 
)
Value:
( \
Bus = (UCHAR) ((Value) >> 5), \
Target = (UCHAR) ((((Value) >> 8) & ~(0x20 - 1)) | ((Value) & (0x20 - 1))))
IN UCHAR Value
Definition: halp.h:394
_Must_inspect_result_ typedef _In_ ULONG _In_ BOOLEAN Target
Definition: iotypes.h:1088
unsigned char UCHAR
Definition: xmlstorage.h:181

Definition at line 65 of file srb.h.

◆ SCSI_DMA64_MINIPORT_SUPPORTED

#define SCSI_DMA64_MINIPORT_SUPPORTED   0x01

Definition at line 39 of file srb.h.

◆ SCSI_DMA64_SYSTEM_SUPPORTED

#define SCSI_DMA64_SYSTEM_SUPPORTED   0x80

Definition at line 40 of file srb.h.

◆ SCSI_MAXIMUM_BUSES

#define SCSI_MAXIMUM_BUSES   8

Definition at line 33 of file srb.h.

◆ SCSI_MAXIMUM_LOGICAL_UNITS

#define SCSI_MAXIMUM_LOGICAL_UNITS   8

Definition at line 30 of file srb.h.

◆ SCSI_MAXIMUM_LUNS_PER_TARGET

#define SCSI_MAXIMUM_LUNS_PER_TARGET   255

Definition at line 32 of file srb.h.

◆ SCSI_MAXIMUM_PHYSICAL_BREAKS

#define SCSI_MAXIMUM_PHYSICAL_BREAKS   255

Definition at line 35 of file srb.h.

◆ SCSI_MAXIMUM_TARGETS

#define SCSI_MAXIMUM_TARGETS   8

Definition at line 36 of file srb.h.

◆ SCSI_MAXIMUM_TARGETS_PER_BUS

#define SCSI_MAXIMUM_TARGETS_PER_BUS   128

Definition at line 31 of file srb.h.

◆ SCSI_MINIMUM_PHYSICAL_BREAKS

#define SCSI_MINIMUM_PHYSICAL_BREAKS   16

Definition at line 34 of file srb.h.

◆ SCSI_REQUEST_BLOCK_SIZE

#define SCSI_REQUEST_BLOCK_SIZE   sizeof(SCSI_REQUEST_BLOCK)

Definition at line 318 of file srb.h.

◆ SCSIPORT_API

#define SCSIPORT_API   DECLSPEC_IMPORT

Definition at line 774 of file srb.h.

◆ ScsiPortConvertPhysicalAddressToUlong

#define ScsiPortConvertPhysicalAddressToUlong (   Address)    ((Address).LowPart)

Definition at line 794 of file srb.h.

◆ ScsiPortConvertPhysicalAddressToULongPtr

#define ScsiPortConvertPhysicalAddressToULongPtr (   Address)    ((ULONG_PTR)((Address).QuadPart))

Definition at line 795 of file srb.h.

◆ SP_BAD_FW_ERROR

#define SP_BAD_FW_ERROR   0x000a

Definition at line 190 of file srb.h.

◆ SP_BAD_FW_WARNING

#define SP_BAD_FW_WARNING   0x0009

Definition at line 189 of file srb.h.

◆ SP_BUS_PARITY_ERROR

#define SP_BUS_PARITY_ERROR   0x0001

Definition at line 181 of file srb.h.

◆ SP_BUS_TIME_OUT

#define SP_BUS_TIME_OUT   0x0004

Definition at line 184 of file srb.h.

◆ SP_INTERNAL_ADAPTER_ERROR

#define SP_INTERNAL_ADAPTER_ERROR   0x0006

Definition at line 186 of file srb.h.

◆ SP_INVALID_RESELECTION

#define SP_INVALID_RESELECTION   0x0003

Definition at line 183 of file srb.h.

◆ SP_IRQ_NOT_RESPONDING

#define SP_IRQ_NOT_RESPONDING   0x0008

Definition at line 188 of file srb.h.

◆ SP_LOST_WMI_MINIPORT_REQUEST

#define SP_LOST_WMI_MINIPORT_REQUEST   0x000b

Definition at line 191 of file srb.h.

◆ SP_PROTOCOL_ERROR

#define SP_PROTOCOL_ERROR   0x0005

Definition at line 185 of file srb.h.

◆ SP_REQUEST_TIMEOUT

#define SP_REQUEST_TIMEOUT   0x0007

Definition at line 187 of file srb.h.

◆ SP_RETURN_BAD_CONFIG

#define SP_RETURN_BAD_CONFIG   3

Definition at line 198 of file srb.h.

◆ SP_RETURN_ERROR

#define SP_RETURN_ERROR   2

Definition at line 197 of file srb.h.

◆ SP_RETURN_FOUND

#define SP_RETURN_FOUND   1

Definition at line 196 of file srb.h.

◆ SP_RETURN_NOT_FOUND

#define SP_RETURN_NOT_FOUND   0

Definition at line 195 of file srb.h.

◆ SP_UNEXPECTED_DISCONNECT

#define SP_UNEXPECTED_DISCONNECT   0x0002

Definition at line 182 of file srb.h.

◆ SP_UNINITIALIZED_VALUE

#define SP_UNINITIALIZED_VALUE   ((ULONG) ~0)

Definition at line 45 of file srb.h.

◆ SP_UNTAGGED

#define SP_UNTAGGED   ((UCHAR) ~0)

Definition at line 46 of file srb.h.

◆ SP_VER_TRACE_SUPPORT

#define SP_VER_TRACE_SUPPORT   0x0010

Definition at line 193 of file srb.h.

◆ SRB_ALIGN

#define SRB_ALIGN

Definition at line 443 of file srb.h.

◆ SRB_FLAGS_ADAPTER_CACHE_ENABLE

#define SRB_FLAGS_ADAPTER_CACHE_ENABLE   0x00000200

Definition at line 154 of file srb.h.

◆ SRB_FLAGS_ALLOCATED_FROM_ZONE

#define SRB_FLAGS_ALLOCATED_FROM_ZONE   0x00020000

Definition at line 159 of file srb.h.

◆ SRB_FLAGS_BYPASS_FROZEN_QUEUE

#define SRB_FLAGS_BYPASS_FROZEN_QUEUE   0x00000010

Definition at line 147 of file srb.h.

◆ SRB_FLAGS_BYPASS_LOCKED_QUEUE

#define SRB_FLAGS_BYPASS_LOCKED_QUEUE   0x00080000

Definition at line 161 of file srb.h.

◆ SRB_FLAGS_CLASS_DRIVER_RESERVED

#define SRB_FLAGS_CLASS_DRIVER_RESERVED   0xF0000000

Definition at line 167 of file srb.h.

◆ SRB_FLAGS_D3_PROCESSING

#define SRB_FLAGS_D3_PROCESSING   0x00000800

Definition at line 156 of file srb.h.

◆ SRB_FLAGS_DATA_IN

#define SRB_FLAGS_DATA_IN   0x00000040

Definition at line 149 of file srb.h.

◆ SRB_FLAGS_DATA_OUT

#define SRB_FLAGS_DATA_OUT   0x00000080

Definition at line 150 of file srb.h.

◆ SRB_FLAGS_DISABLE_AUTOSENSE

#define SRB_FLAGS_DISABLE_AUTOSENSE   0x00000020

Definition at line 148 of file srb.h.

◆ SRB_FLAGS_DISABLE_DISCONNECT

#define SRB_FLAGS_DISABLE_DISCONNECT   0x00000004

Definition at line 145 of file srb.h.

◆ SRB_FLAGS_DISABLE_SYNCH_TRANSFER

#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER   0x00000008

Definition at line 146 of file srb.h.

◆ SRB_FLAGS_DONT_START_NEXT_PACKET

#define SRB_FLAGS_DONT_START_NEXT_PACKET   0x00800000

Definition at line 165 of file srb.h.

◆ SRB_FLAGS_FREE_SENSE_BUFFER

#define SRB_FLAGS_FREE_SENSE_BUFFER   0x00000400

Definition at line 155 of file srb.h.

◆ SRB_FLAGS_IS_ACTIVE

#define SRB_FLAGS_IS_ACTIVE   0x00010000

Definition at line 158 of file srb.h.

◆ SRB_FLAGS_NO_DATA_TRANSFER

#define SRB_FLAGS_NO_DATA_TRANSFER   0x00000000

Definition at line 151 of file srb.h.

◆ SRB_FLAGS_NO_KEEP_AWAKE

#define SRB_FLAGS_NO_KEEP_AWAKE   0x00100000

Definition at line 162 of file srb.h.

◆ SRB_FLAGS_NO_QUEUE_FREEZE

#define SRB_FLAGS_NO_QUEUE_FREEZE   0x00000100

Definition at line 153 of file srb.h.

◆ SRB_FLAGS_PORT_DRIVER_ALLOCSENSE

#define SRB_FLAGS_PORT_DRIVER_ALLOCSENSE   0x00200000

Definition at line 163 of file srb.h.

◆ SRB_FLAGS_PORT_DRIVER_RESERVED

#define SRB_FLAGS_PORT_DRIVER_RESERVED   0x0F000000

Definition at line 166 of file srb.h.

◆ SRB_FLAGS_PORT_DRIVER_SENSEHASPORT

#define SRB_FLAGS_PORT_DRIVER_SENSEHASPORT   0x00400000

Definition at line 164 of file srb.h.

◆ SRB_FLAGS_QUEUE_ACTION_ENABLE

#define SRB_FLAGS_QUEUE_ACTION_ENABLE   0x00000002

Definition at line 144 of file srb.h.

◆ SRB_FLAGS_SEQUENTIAL_REQUIRED

#define SRB_FLAGS_SEQUENTIAL_REQUIRED   0x00001000

Definition at line 157 of file srb.h.

◆ SRB_FLAGS_SGLIST_FROM_POOL

#define SRB_FLAGS_SGLIST_FROM_POOL   0x00040000

Definition at line 160 of file srb.h.

◆ SRB_FLAGS_UNSPECIFIED_DIRECTION

#define SRB_FLAGS_UNSPECIFIED_DIRECTION   (SRB_FLAGS_DATA_IN | SRB_FLAGS_DATA_OUT)

Definition at line 152 of file srb.h.

◆ SRB_FUNCTION_ABORT_COMMAND

#define SRB_FUNCTION_ABORT_COMMAND   0x10

Definition at line 80 of file srb.h.

◆ SRB_FUNCTION_ATTACH_DEVICE

#define SRB_FUNCTION_ATTACH_DEVICE   0x05

Definition at line 75 of file srb.h.

◆ SRB_FUNCTION_CLAIM_DEVICE

#define SRB_FUNCTION_CLAIM_DEVICE   0x01

Definition at line 71 of file srb.h.

◆ SRB_FUNCTION_CRYPTO_OPERATION

#define SRB_FUNCTION_CRYPTO_OPERATION   0x29

Definition at line 100 of file srb.h.

◆ SRB_FUNCTION_DUMP_POINTERS

#define SRB_FUNCTION_DUMP_POINTERS   0x26

Definition at line 97 of file srb.h.

◆ SRB_FUNCTION_EXECUTE_SCSI

#define SRB_FUNCTION_EXECUTE_SCSI   0x00

Definition at line 70 of file srb.h.

◆ SRB_FUNCTION_FLUSH

#define SRB_FUNCTION_FLUSH   0x08

Definition at line 78 of file srb.h.

◆ SRB_FUNCTION_FLUSH_QUEUE

#define SRB_FUNCTION_FLUSH_QUEUE   0x15

Definition at line 85 of file srb.h.

◆ SRB_FUNCTION_FREE_DUMP_INFO

#define SRB_FUNCTION_FREE_DUMP_INFO   0x2b

Definition at line 102 of file srb.h.

◆ SRB_FUNCTION_FREE_DUMP_POINTERS

#define SRB_FUNCTION_FREE_DUMP_POINTERS   0x27

Definition at line 98 of file srb.h.

◆ SRB_FUNCTION_GET_DUMP_INFO

#define SRB_FUNCTION_GET_DUMP_INFO   0x2a

Definition at line 101 of file srb.h.

◆ SRB_FUNCTION_IO_CONTROL

#define SRB_FUNCTION_IO_CONTROL   0x02

Definition at line 72 of file srb.h.

◆ SRB_FUNCTION_LINK_TIMEOUT_COMPLETE

#define SRB_FUNCTION_LINK_TIMEOUT_COMPLETE   0x23

Definition at line 94 of file srb.h.

◆ SRB_FUNCTION_LINK_TIMEOUT_OCCURRED

#define SRB_FUNCTION_LINK_TIMEOUT_OCCURRED   0x22

Definition at line 93 of file srb.h.

◆ SRB_FUNCTION_LOCK_QUEUE

#define SRB_FUNCTION_LOCK_QUEUE   0x18

Definition at line 88 of file srb.h.

◆ SRB_FUNCTION_PNP

#define SRB_FUNCTION_PNP   0x25

Definition at line 96 of file srb.h.

◆ SRB_FUNCTION_POWER

#define SRB_FUNCTION_POWER   0x24

Definition at line 95 of file srb.h.

◆ SRB_FUNCTION_PROTOCOL_COMMAND

#define SRB_FUNCTION_PROTOCOL_COMMAND   0x09

Definition at line 79 of file srb.h.

◆ SRB_FUNCTION_QUIESCE_DEVICE

#define SRB_FUNCTION_QUIESCE_DEVICE   0x1a

Definition at line 90 of file srb.h.

◆ SRB_FUNCTION_RECEIVE_EVENT

#define SRB_FUNCTION_RECEIVE_EVENT   0x03

Definition at line 73 of file srb.h.

◆ SRB_FUNCTION_RELEASE_DEVICE

#define SRB_FUNCTION_RELEASE_DEVICE   0x06

Definition at line 76 of file srb.h.

◆ SRB_FUNCTION_RELEASE_QUEUE

#define SRB_FUNCTION_RELEASE_QUEUE   0x04

Definition at line 74 of file srb.h.

◆ SRB_FUNCTION_RELEASE_RECOVERY

#define SRB_FUNCTION_RELEASE_RECOVERY   0x11

Definition at line 81 of file srb.h.

◆ SRB_FUNCTION_REMOVE_DEVICE

#define SRB_FUNCTION_REMOVE_DEVICE   0x16

Definition at line 86 of file srb.h.

◆ SRB_FUNCTION_RESET_BUS

#define SRB_FUNCTION_RESET_BUS   0x12

Definition at line 82 of file srb.h.

◆ SRB_FUNCTION_RESET_DEVICE

#define SRB_FUNCTION_RESET_DEVICE   0x13

Definition at line 83 of file srb.h.

◆ SRB_FUNCTION_RESET_LOGICAL_UNIT

#define SRB_FUNCTION_RESET_LOGICAL_UNIT   0x20

Definition at line 91 of file srb.h.

◆ SRB_FUNCTION_SET_LINK_TIMEOUT

#define SRB_FUNCTION_SET_LINK_TIMEOUT   0x21

Definition at line 92 of file srb.h.

◆ SRB_FUNCTION_SHUTDOWN

#define SRB_FUNCTION_SHUTDOWN   0x07

Definition at line 77 of file srb.h.

◆ SRB_FUNCTION_STORAGE_REQUEST_BLOCK

#define SRB_FUNCTION_STORAGE_REQUEST_BLOCK   0x28

Definition at line 99 of file srb.h.

◆ SRB_FUNCTION_TERMINATE_IO

#define SRB_FUNCTION_TERMINATE_IO   0x14

Definition at line 84 of file srb.h.

◆ SRB_FUNCTION_UNLOCK_QUEUE

#define SRB_FUNCTION_UNLOCK_QUEUE   0x19

Definition at line 89 of file srb.h.

◆ SRB_FUNCTION_WMI

#define SRB_FUNCTION_WMI   0x17

Definition at line 87 of file srb.h.

◆ SRB_HEAD_OF_QUEUE_TAG_REQUEST

#define SRB_HEAD_OF_QUEUE_TAG_REQUEST   0x21

Definition at line 174 of file srb.h.

◆ SRB_ORDERED_QUEUE_TAG_REQUEST

#define SRB_ORDERED_QUEUE_TAG_REQUEST   0x22

Definition at line 175 of file srb.h.

◆ SRB_PNP_FLAGS_ADAPTER_REQUEST

#define SRB_PNP_FLAGS_ADAPTER_REQUEST   0x0001

Definition at line 179 of file srb.h.

◆ SRB_POWER_FLAGS_ADAPTER_REQUEST

#define SRB_POWER_FLAGS_ADAPTER_REQUEST   0x0001

Definition at line 178 of file srb.h.

◆ SRB_SIGNATURE

#define SRB_SIGNATURE   0x53524258

Definition at line 607 of file srb.h.

◆ SRB_SIMPLE_TAG_REQUEST

#define SRB_SIMPLE_TAG_REQUEST   0x20

Definition at line 173 of file srb.h.

◆ SRB_STATUS

Definition at line 140 of file srb.h.

◆ SRB_STATUS_ABORT_FAILED

#define SRB_STATUS_ABORT_FAILED   0x03

Definition at line 108 of file srb.h.

◆ SRB_STATUS_ABORTED

#define SRB_STATUS_ABORTED   0x02

Definition at line 107 of file srb.h.

◆ SRB_STATUS_AUTOSENSE_VALID

#define SRB_STATUS_AUTOSENSE_VALID   0x80

Definition at line 138 of file srb.h.

◆ SRB_STATUS_BAD_FUNCTION

#define SRB_STATUS_BAD_FUNCTION   0x22

Definition at line 129 of file srb.h.

◆ SRB_STATUS_BAD_SRB_BLOCK_LENGTH

#define SRB_STATUS_BAD_SRB_BLOCK_LENGTH   0x15

Definition at line 125 of file srb.h.

◆ SRB_STATUS_BUS_RESET

#define SRB_STATUS_BUS_RESET   0x0E

Definition at line 118 of file srb.h.

◆ SRB_STATUS_BUSY

#define SRB_STATUS_BUSY   0x05

Definition at line 110 of file srb.h.

◆ SRB_STATUS_COMMAND_TIMEOUT

#define SRB_STATUS_COMMAND_TIMEOUT   0x0B

Definition at line 116 of file srb.h.

◆ SRB_STATUS_DATA_OVERRUN

#define SRB_STATUS_DATA_OVERRUN   0x12

Definition at line 122 of file srb.h.

◆ SRB_STATUS_ERROR

#define SRB_STATUS_ERROR   0x04

Definition at line 109 of file srb.h.

◆ SRB_STATUS_ERROR_RECOVERY

#define SRB_STATUS_ERROR_RECOVERY   0x23

Definition at line 130 of file srb.h.

◆ SRB_STATUS_INSUFFICIENT_RESOURCES

#define SRB_STATUS_INSUFFICIENT_RESOURCES   0x26

Definition at line 133 of file srb.h.

◆ SRB_STATUS_INTERNAL_ERROR

#define SRB_STATUS_INTERNAL_ERROR   0x30

Definition at line 135 of file srb.h.

◆ SRB_STATUS_INVALID_LUN

#define SRB_STATUS_INVALID_LUN   0x20

Definition at line 127 of file srb.h.

◆ SRB_STATUS_INVALID_PATH_ID

#define SRB_STATUS_INVALID_PATH_ID   0x07

Definition at line 112 of file srb.h.

◆ SRB_STATUS_INVALID_REQUEST

#define SRB_STATUS_INVALID_REQUEST   0x06

Definition at line 111 of file srb.h.

◆ SRB_STATUS_INVALID_TARGET_ID

#define SRB_STATUS_INVALID_TARGET_ID   0x21

Definition at line 128 of file srb.h.

◆ SRB_STATUS_LINK_DOWN

#define SRB_STATUS_LINK_DOWN   0x25

Definition at line 132 of file srb.h.

◆ SRB_STATUS_MESSAGE_REJECTED

#define SRB_STATUS_MESSAGE_REJECTED   0x0D

Definition at line 117 of file srb.h.

◆ SRB_STATUS_NO_DEVICE

#define SRB_STATUS_NO_DEVICE   0x08

Definition at line 113 of file srb.h.

◆ SRB_STATUS_NO_HBA

#define SRB_STATUS_NO_HBA   0x11

Definition at line 121 of file srb.h.

◆ SRB_STATUS_NOT_POWERED

#define SRB_STATUS_NOT_POWERED   0x24

Definition at line 131 of file srb.h.

◆ SRB_STATUS_PARITY_ERROR

#define SRB_STATUS_PARITY_ERROR   0x0F

Definition at line 119 of file srb.h.

◆ SRB_STATUS_PENDING

#define SRB_STATUS_PENDING   0x00

Definition at line 105 of file srb.h.

◆ SRB_STATUS_PHASE_SEQUENCE_FAILURE

#define SRB_STATUS_PHASE_SEQUENCE_FAILURE   0x14

Definition at line 124 of file srb.h.

◆ SRB_STATUS_QUEUE_FROZEN

#define SRB_STATUS_QUEUE_FROZEN   0x40

Definition at line 137 of file srb.h.

◆ SRB_STATUS_REQUEST_FLUSHED

#define SRB_STATUS_REQUEST_FLUSHED   0x16

Definition at line 126 of file srb.h.

◆ SRB_STATUS_REQUEST_SENSE_FAILED

#define SRB_STATUS_REQUEST_SENSE_FAILED   0x10

Definition at line 120 of file srb.h.

◆ SRB_STATUS_SELECTION_TIMEOUT

#define SRB_STATUS_SELECTION_TIMEOUT   0x0A

Definition at line 115 of file srb.h.

◆ SRB_STATUS_SUCCESS

#define SRB_STATUS_SUCCESS   0x01

Definition at line 106 of file srb.h.

◆ SRB_STATUS_THROTTLED_REQUEST

#define SRB_STATUS_THROTTLED_REQUEST   0x27

Definition at line 134 of file srb.h.

◆ SRB_STATUS_TIMEOUT

#define SRB_STATUS_TIMEOUT   0x09

Definition at line 114 of file srb.h.

◆ SRB_STATUS_UNEXPECTED_BUS_FREE

#define SRB_STATUS_UNEXPECTED_BUS_FREE   0x13

Definition at line 123 of file srb.h.

◆ SRB_TYPE_SCSI_REQUEST_BLOCK

#define SRB_TYPE_SCSI_REQUEST_BLOCK   0

Definition at line 654 of file srb.h.

◆ SRB_TYPE_STORAGE_REQUEST_BLOCK

#define SRB_TYPE_STORAGE_REQUEST_BLOCK   1

Definition at line 655 of file srb.h.

◆ SRB_WMI_FLAGS_ADAPTER_REQUEST

#define SRB_WMI_FLAGS_ADAPTER_REQUEST   0x0001

Definition at line 177 of file srb.h.

◆ SRBEV_BUS_RESET

#define SRBEV_BUS_RESET   0x0001

Definition at line 49 of file srb.h.

◆ SRBEV_SCSI_ASYNC_NOTIFICATION

#define SRBEV_SCSI_ASYNC_NOTIFICATION   0x0002

Definition at line 50 of file srb.h.

◆ SRBEX_DATA_BIDIRECTIONAL_LENGTH

#define SRBEX_DATA_BIDIRECTIONAL_LENGTH   ((2 * sizeof(ULONG)) + sizeof(PVOID))

Definition at line 467 of file srb.h.

◆ SRBEX_DATA_IO_INFO_LENGTH

#define SRBEX_DATA_IO_INFO_LENGTH   ((5 * sizeof(ULONG)) + (4 * sizeof(UCHAR)))

Definition at line 574 of file srb.h.

◆ SRBEX_DATA_PNP_LENGTH

#define SRBEX_DATA_PNP_LENGTH   ((4 * sizeof(UCHAR)) + sizeof(STOR_PNP_ACTION) + (2 * sizeof(ULONG)))

Definition at line 560 of file srb.h.

◆ SRBEX_DATA_POWER_LENGTH

#define SRBEX_DATA_POWER_LENGTH   ((4 * sizeof(UCHAR)) + sizeof(STOR_DEVICE_POWER_STATE) + sizeof(STOR_POWER_ACTION))

Definition at line 547 of file srb.h.

◆ SRBEX_DATA_SCSI_CDB16_LENGTH

#define SRBEX_DATA_SCSI_CDB16_LENGTH   ((20 * sizeof(UCHAR)) + sizeof(ULONG) + sizeof(PVOID))

Definition at line 480 of file srb.h.

◆ SRBEX_DATA_SCSI_CDB32_LENGTH

#define SRBEX_DATA_SCSI_CDB32_LENGTH   ((36 * sizeof(UCHAR)) + sizeof(ULONG) + sizeof(PVOID))

Definition at line 497 of file srb.h.

◆ SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MAX

#define SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MAX   0xffffffffUL

Definition at line 515 of file srb.h.

◆ SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MIN

#define SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MIN   ((4 * sizeof(UCHAR)) + (3 * sizeof(ULONG)) + sizeof(PVOID))

Definition at line 514 of file srb.h.

◆ SRBEX_DATA_WMI_LENGTH

#define SRBEX_DATA_WMI_LENGTH   ((4 * sizeof(UCHAR)) + sizeof(ULONG) + sizeof(PVOID))

Definition at line 533 of file srb.h.

◆ STORAGE_ADDRESS_TYPE_BTL8

#define STORAGE_ADDRESS_TYPE_BTL8   0

Definition at line 657 of file srb.h.

◆ STORAGE_REQUEST_BLOCK_VERSION_1

#define STORAGE_REQUEST_BLOCK_VERSION_1   0x1

Definition at line 608 of file srb.h.

Typedef Documentation

◆ ACCESS_RANGE

◆ HW_INITIALIZATION_DATA

◆ PACCESS_RANGE

◆ PHW_ADAPTER_CONTROL

typedef _Must_inspect_result_ SCSI_ADAPTER_CONTROL_STATUS(NTAPI * PHW_ADAPTER_CONTROL) (_In_ PVOID DeviceExtension, _In_ SCSI_ADAPTER_CONTROL_TYPE ControlType, _In_ PVOID Parameters)

Definition at line 716 of file srb.h.

◆ PHW_ADAPTER_STATE

typedef _Must_inspect_result_ BOOLEAN(NTAPI * PHW_ADAPTER_STATE) (_In_ PVOID DeviceExtension, _In_ PVOID Context, _In_ BOOLEAN SaveState)

Definition at line 708 of file srb.h.

◆ PHW_DMA_STARTED

typedef VOID(NTAPI * PHW_DMA_STARTED) (_In_ PVOID DeviceExtension)

Definition at line 684 of file srb.h.

◆ PHW_FIND_ADAPTER

typedef _Must_inspect_result_ ULONG(NTAPI * PHW_FIND_ADAPTER) (_In_ PVOID DeviceExtension, _In_ PVOID HwContext, _In_ PVOID BusInformation, _In_ PCHAR ArgumentString, _Inout_ PPORT_CONFIGURATION_INFORMATION ConfigInfo, _Out_ PBOOLEAN Again)

Definition at line 690 of file srb.h.

◆ PHW_INITIALIZATION_DATA

◆ PHW_INITIALIZE

typedef _Must_inspect_result_ BOOLEAN(NTAPI * PHW_INITIALIZE) (_In_ PVOID DeviceExtension)

Definition at line 663 of file srb.h.

◆ PHW_INTERRUPT

typedef _Must_inspect_result_ BOOLEAN(NTAPI * PHW_INTERRUPT) (_In_ PVOID DeviceExtension)

Definition at line 676 of file srb.h.

◆ PHW_RESET_BUS

typedef _Must_inspect_result_ BOOLEAN(NTAPI * PHW_RESET_BUS) (_In_ PVOID DeviceExtension, _In_ ULONG PathId)

Definition at line 701 of file srb.h.

◆ PHW_STARTIO

typedef _Must_inspect_result_ BOOLEAN(NTAPI * PHW_STARTIO) (_In_ PVOID DeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb)

Definition at line 669 of file srb.h.

◆ PHW_TIMER

typedef VOID(NTAPI * PHW_TIMER) (_In_ PVOID DeviceExtension)

Definition at line 680 of file srb.h.

◆ PORT_CONFIGURATION_INFORMATION

◆ PPORT_CONFIGURATION_INFORMATION

◆ PSCSI_ADAPTER_CONTROL_STATUS

◆ PSCSI_ADAPTER_CONTROL_TYPE

◆ PSCSI_NOTIFICATION_TYPE

◆ PSCSI_PHYSICAL_ADDRESS

Definition at line 200 of file srb.h.

◆ PSCSI_PNP_REQUEST_BLOCK

◆ PSCSI_POWER_REQUEST_BLOCK

◆ PSCSI_REQUEST_BLOCK

◆ PSCSI_SUPPORTED_CONTROL_TYPE_LIST

◆ PSCSI_WMI_REQUEST_BLOCK

◆ PSRBEX_DATA

◆ PSRBEX_DATA_BIDIRECTIONAL

◆ PSRBEX_DATA_IO_INFO

◆ PSRBEX_DATA_PNP

◆ PSRBEX_DATA_POWER

◆ PSRBEX_DATA_SCSI_CDB16

◆ PSRBEX_DATA_SCSI_CDB32

◆ PSRBEX_DATA_SCSI_CDB_VAR

◆ PSRBEX_DATA_WMI

◆ PSRBEXDATATYPE

◆ PSTOR_DEVICE_CAPABILITIES

◆ PSTOR_DEVICE_POWER_STATE

◆ PSTOR_PNP_ACTION

◆ PSTOR_POWER_ACTION

◆ PSTORAGE_REQUEST_BLOCK_HEADER

◆ SCSI_ADAPTER_CONTROL_STATUS

◆ SCSI_ADAPTER_CONTROL_TYPE

◆ SCSI_NOTIFICATION_TYPE

◆ SCSI_PHYSICAL_ADDRESS

Definition at line 200 of file srb.h.

◆ SCSI_PNP_REQUEST_BLOCK

◆ SCSI_POWER_REQUEST_BLOCK

◆ SCSI_REQUEST_BLOCK

◆ SCSI_SUPPORTED_CONTROL_TYPE_LIST

◆ SCSI_WMI_REQUEST_BLOCK

◆ SRBEX_DATA

◆ SRBEX_DATA_BIDIRECTIONAL

◆ SRBEX_DATA_IO_INFO

◆ SRBEX_DATA_PNP

◆ SRBEX_DATA_POWER

◆ SRBEX_DATA_SCSI_CDB16

◆ SRBEX_DATA_SCSI_CDB32

◆ SRBEX_DATA_SCSI_CDB_VAR

◆ SRBEX_DATA_WMI

◆ SRBEXDATATYPE

◆ STOR_DEVICE_CAPABILITIES

◆ STOR_DEVICE_POWER_STATE

◆ STOR_PNP_ACTION

◆ STOR_POWER_ACTION

◆ STORAGE_REQUEST_BLOCK_HEADER

Enumeration Type Documentation

◆ _SCSI_ADAPTER_CONTROL_STATUS

Enumerator
ScsiAdapterControlSuccess 
ScsiAdapterControlUnsuccessful 
ScsiAdapterControlSuccess 
ScsiAdapterControlUnsuccessful 
ScsiAdapterControlSuccess 
ScsiAdapterControlUnsuccessful 

Definition at line 277 of file srb.h.

277  {
enum _SCSI_ADAPTER_CONTROL_STATUS SCSI_ADAPTER_CONTROL_STATUS
enum _SCSI_ADAPTER_CONTROL_STATUS * PSCSI_ADAPTER_CONTROL_STATUS

◆ _SCSI_ADAPTER_CONTROL_TYPE

Enumerator
ScsiQuerySupportedControlTypes 
ScsiStopAdapter 
ScsiRestartAdapter 
ScsiSetBootConfig 
ScsiSetRunningConfig 
ScsiAdapterControlMax 
MakeAdapterControlTypeSizeOfUlong 
ScsiQuerySupportedControlTypes 
ScsiStopAdapter 
ScsiRestartAdapter 
ScsiSetBootConfig 
ScsiSetRunningConfig 
ScsiAdapterControlMax 
MakeAdapterControlTypeSizeOfUlong 
ScsiQuerySupportedControlTypes 
ScsiStopAdapter 
ScsiRestartAdapter 
ScsiSetBootConfig 
ScsiSetRunningConfig 
ScsiAdapterControlMax 
MakeAdapterControlTypeSizeOfUlong 

Definition at line 267 of file srb.h.

◆ _SCSI_NOTIFICATION_TYPE

Enumerator
RequestComplete 
NextRequest 
NextLuRequest 
ResetDetected 
CallDisableInterrupts 
CallEnableInterrupts 
RequestTimerCall 
BusChangeDetected 
WMIEvent 
WMIReregister 
RequestComplete 
NextRequest 
NextLuRequest 
ResetDetected 
CallDisableInterrupts 
CallEnableInterrupts 
RequestTimerCall 
BusChangeDetected 
WMIEvent 
WMIReregister 
LinkUp 
LinkDown 
QueryTickCount 
BufferOverrunDetected 
TraceNotification 
RequestComplete 
NextRequest 
NextLuRequest 
ResetDetected 
_obsolete1 
_obsolete2 
RequestTimerCall 
BusChangeDetected 
WMIEvent 
WMIReregister 
LinkUp 
LinkDown 
QueryTickCount 
BufferOverrunDetected 
TraceNotification 
GetExtendedFunctionTable 
EnablePassiveInitialization 
InitializeDpc 
IssueDpc 
AcquireSpinLock 
ReleaseSpinLock 

Definition at line 721 of file srb.h.

721  {
723  NextRequest,
730  WMIEvent,
732  LinkUp,
733  LinkDown,
enum _SCSI_NOTIFICATION_TYPE SCSI_NOTIFICATION_TYPE
enum _SCSI_NOTIFICATION_TYPE * PSCSI_NOTIFICATION_TYPE
Definition: srb.h:732
Definition: srb.h:733
Definition: srb.h:531

◆ _SRBEXDATATYPE

Enumerator
SrbExDataTypeUnknown 
SrbExDataTypeBidirectional 
SrbExDataTypeScsiCdb16 
SrbExDataTypeScsiCdb32 
SrbExDataTypeScsiCdbVar 
SrbExDataTypeWmi 
SrbExDataTypePower 
SrbExDataTypePnP 
SrbExDataTypeIoInfo 
SrbExDataTypeMSReservedStart 
SrbExDataTypeReserved 

Definition at line 447 of file srb.h.

◆ _STOR_DEVICE_POWER_STATE

Enumerator
StorPowerDeviceUnspecified 
StorPowerDeviceD0 
StorPowerDeviceD1 
StorPowerDeviceD2 
StorPowerDeviceD3 
StorPowerDeviceMaximum 
StorPowerDeviceUnspecified 
StorPowerDeviceD0 
StorPowerDeviceD1 
StorPowerDeviceD2 
StorPowerDeviceD3 
StorPowerDeviceMaximum 

Definition at line 346 of file srb.h.

346  {
enum _STOR_DEVICE_POWER_STATE STOR_DEVICE_POWER_STATE
enum _STOR_DEVICE_POWER_STATE * PSTOR_DEVICE_POWER_STATE

◆ _STOR_PNP_ACTION

Enumerator
StorStartDevice 
StorRemoveDevice 
StorStopDevice 
StorQueryCapabilities 
StorQueryResourceRequirements 
StorFilterResourceRequirements 
StorSurpriseRemoval 
StorStartDevice 
StorRemoveDevice 
StorStopDevice 
StorQueryCapabilities 
StorQueryResourceRequirements 
StorFilterResourceRequirements 
StorSurpriseRemoval 

Definition at line 390 of file srb.h.

390  {
391  StorStartDevice = 0x0,
392  StorRemoveDevice = 0x2,
393  StorStopDevice = 0x4,
394  StorQueryCapabilities = 0x9,
397  StorSurpriseRemoval = 0x17
enum _STOR_PNP_ACTION STOR_PNP_ACTION
enum _STOR_PNP_ACTION * PSTOR_PNP_ACTION

◆ _STOR_POWER_ACTION

Enumerator
StorPowerActionNone 
StorPowerActionReserved 
StorPowerActionSleep 
StorPowerActionHibernate 
StorPowerActionShutdown 
StorPowerActionShutdownReset 
StorPowerActionShutdownOff 
StorPowerActionWarmEject 
StorPowerActionNone 
StorPowerActionReserved 
StorPowerActionSleep 
StorPowerActionHibernate 
StorPowerActionShutdown 
StorPowerActionShutdownReset 
StorPowerActionShutdownOff 
StorPowerActionWarmEject 

Definition at line 355 of file srb.h.

Function Documentation

◆ _IRQL_requires_max_()

_Must_inspect_result_ _IRQL_requires_max_ ( PASSIVE_LEVEL  )

Definition at line 64 of file Messaging.c.

75 {
76  PFLT_SERVER_PORT_OBJECT PortObject;
78 
79  /* The caller must allow at least one connection */
80  if (MaxConnections == 0)
81  {
83  }
84 
85  /* The request must be for a kernel handle */
86  if (!(ObjectAttributes->Attributes & OBJ_KERNEL_HANDLE))
87  {
89  }
90 
91  /*
92  * Get rundown protection on the target to stop the owner
93  * from unloading whilst this port object is open. It gets
94  * removed in the FltpServerPortClose callback
95  */
97  if (!NT_SUCCESS(Status))
98  {
99  return Status;
100  }
101 
102  /* Create the server port object for this filter */
106  KernelMode,
107  NULL,
108  sizeof(FLT_SERVER_PORT_OBJECT),
109  0,
110  0,
111  (PVOID *)&PortObject);
112  if (NT_SUCCESS(Status))
113  {
114  /* Zero out the struct */
115  RtlZeroMemory(PortObject, sizeof(FLT_SERVER_PORT_OBJECT));
116 
117  /* Increment the ref count on the target filter */
119 
120  /* Setup the filter port object */
121  PortObject->Filter = Filter;
122  PortObject->ConnectNotify = ConnectNotifyCallback;
124  PortObject->MessageNotify = MessageNotifyCallback;
125  PortObject->Cookie = ServerPortCookie;
126  PortObject->MaxConnections = MaxConnections;
127 
128  /* Insert the object */
129  Status = ObInsertObject(PortObject,
130  NULL,
132  0,
133  NULL,
135  if (NT_SUCCESS(Status))
136  {
137  /* Lock the connection list */
139 
140  /* Add the new port object to the connection list and increment the count */
143 
144  /* Unlock the connection list*/
146  }
147  }
148 
149  if (!NT_SUCCESS(Status))
150  {
151  /* Allow the filter to be cleaned up */
153  }
154 
155  return Status;
156 }
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:35
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
_Must_inspect_result_ _Outptr_ PFLT_PORT * ServerPort
Definition: fltkernel.h:1873
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
LONG NTSTATUS
Definition: precomp.h:26
#define InsertTailList(ListHead, Entry)
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
LIST_ENTRY mList
Definition: fltmgrint.h:56
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1802
#define FILE_READ_DATA
Definition: nt_native.h:628
smooth NULL
Definition: ftsmooth.c:416
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:952
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1873
Status
Definition: gdiplustypes.h:24
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1873
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2932
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1873
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY _In_ LONG MaxConnections
Definition: fltkernel.h:1873
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1873
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121

◆ _Struct_size_bytes_()

typedef _Struct_size_bytes_ ( SrbLength  )

Definition at line 617 of file srb.h.

617  {
618  USHORT Length;
620  UCHAR Function;
621  UCHAR SrbStatus;
622  UCHAR ReservedUchar[4];
626  ULONG Version;
627  ULONG SrbLength;
628  ULONG SrbFunction;
629  ULONG SrbFlags;
630  ULONG ReservedUlong;
631  ULONG RequestTag;
632  USHORT RequestPriority;
633  USHORT RequestAttribute;
634  ULONG TimeOutValue;
635  ULONG SystemStatus;
636  ULONG ZeroGuard1;
637  _Field_range_(sizeof(STORAGE_REQUEST_BLOCK), SrbLength - sizeof(STOR_ADDRESS))
638  ULONG AddressOffset;
639  ULONG NumSrbExData;
640  ULONG DataTransferLength;
641  _Field_size_bytes_full_(DataTransferLength)
642  PVOID POINTER_ALIGN DataBuffer;
643  PVOID POINTER_ALIGN ZeroGuard2;
645  PVOID POINTER_ALIGN ClassContext;
646  PVOID POINTER_ALIGN PortContext;
647  PVOID POINTER_ALIGN MiniportContext;
648  struct _STORAGE_REQUEST_BLOCK POINTER_ALIGN *NextSrb;
649  _At_buffer_(SrbExDataOffset, _Iter_, NumSrbExData, _Field_range_(0, SrbLength - sizeof(SRBEX_DATA)))
650  _Field_size_(NumSrbExData)
651  ULONG SrbExDataOffset[ANYSIZE_ARRAY];
IN PVOID IN PVOID IN USHORT Version
Definition: pci.h:361
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
Definition: cdrom.h:1154
#define STORAGE_REQUEST_BLOCK_VERSION_1
Definition: srb.h:608
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
struct SRB_ALIGN _SRBEX_DATA SRBEX_DATA
#define POINTER_ALIGN
Definition: srb.h:444
_Iter_
Definition: memory.h:71
typedef _Field_range_(0, 255) ULONG AACS_LAYER_NUMBER
#define _At_buffer_(target, iter, bound, annos)
Definition: no_sal2.h:12
* PSTORAGE_REQUEST_BLOCK
Definition: srb.h:652
#define _Field_size_bytes_full_(size)
Definition: no_sal2.h:191
#define _Field_size_(size)
Definition: no_sal2.h:189
struct STOR_ADDRESS_ALIGN _STOR_ADDRESS STOR_ADDRESS
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
#define SRB_FUNCTION_STORAGE_REQUEST_BLOCK
Definition: srb.h:99
unsigned char UCHAR
Definition: xmlstorage.h:181
#define SRB_SIGNATURE
Definition: srb.h:607
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID _In_ ULONG _In_ BOOLEAN _In_opt_ WDFREQUEST OriginalRequest
Definition: cdrom.h:989
unsigned short USHORT
Definition: pedump.c:61
STORAGE_REQUEST_BLOCK
Definition: srb.h:652
unsigned int ULONG
Definition: retypes.h:1
static const WCHAR Signature[]
Definition: parser.c:141

◆ ScsiDebugPrint()

SCSIPORT_API VOID __cdecl ScsiDebugPrint ( ULONG  DebugPrintLevel,
PCCHAR  DebugMessage,
  ... 
)

◆ ScsiPortCompleteRequest()

SCSIPORT_API VOID NTAPI ScsiPortCompleteRequest ( _In_ PVOID  HwDeviceExtension,
_In_ UCHAR  PathId,
_In_ UCHAR  TargetId,
_In_ UCHAR  Lun,
_In_ UCHAR  SrbStatus 
)

◆ ScsiPortConvertPhysicalAddressToUlong()

_Must_inspect_result_ SCSIPORT_API ULONG NTAPI ScsiPortConvertPhysicalAddressToUlong ( _In_ SCSI_PHYSICAL_ADDRESS  Address)

◆ ScsiPortConvertUlongToPhysicalAddress()

_Must_inspect_result_ SCSIPORT_API SCSI_PHYSICAL_ADDRESS NTAPI ScsiPortConvertUlongToPhysicalAddress ( _In_ ULONG_PTR  UlongAddress)

◆ ScsiPortFlushDma()

SCSIPORT_API VOID NTAPI ScsiPortFlushDma ( _In_ PVOID  DeviceExtension)

◆ ScsiPortFreeDeviceBase()

SCSIPORT_API VOID NTAPI ScsiPortFreeDeviceBase ( _In_ PVOID  HwDeviceExtension,
_In_ PVOID  MappedAddress 
)

◆ ScsiPortGetBusData()

_Must_inspect_result_ SCSIPORT_API ULONG NTAPI ScsiPortGetBusData ( _In_ PVOID  DeviceExtension,
_In_ ULONG  BusDataType,
_In_ ULONG  SystemIoBusNumber,
_In_ ULONG  SlotNumber,
_In_reads_bytes_(Length) PVOID  Buffer,
_In_ ULONG  Length 
)

◆ ScsiPortGetDeviceBase()

_Must_inspect_result_ SCSIPORT_API PVOID NTAPI ScsiPortGetDeviceBase ( _In_ PVOID  HwDeviceExtension,
_In_ INTERFACE_TYPE  BusType,
_In_ ULONG  SystemIoBusNumber,
_In_ SCSI_PHYSICAL_ADDRESS  IoAddress,
_In_ ULONG  NumberOfBytes,
_In_ BOOLEAN  InIoSpace 
)

◆ ScsiPortGetLogicalUnit()

_Must_inspect_result_ SCSIPORT_API PVOID NTAPI ScsiPortGetLogicalUnit ( _In_ PVOID  HwDeviceExtension,
_In_ UCHAR  PathId,
_In_ UCHAR  TargetId,
_In_ UCHAR  Lun 
)

◆ ScsiPortGetPhysicalAddress()

_Must_inspect_result_ SCSIPORT_API SCSI_PHYSICAL_ADDRESS NTAPI ScsiPortGetPhysicalAddress ( _In_ PVOID  HwDeviceExtension,
_In_ PSCSI_REQUEST_BLOCK  Srb,
_In_ PVOID  VirtualAddress,
_Out_ ULONG Length 
)

◆ ScsiPortGetSrb()

_Must_inspect_result_ SCSIPORT_API PSCSI_REQUEST_BLOCK NTAPI ScsiPortGetSrb ( _In_ PVOID  DeviceExtension,
_In_ UCHAR  PathId,
_In_ UCHAR  TargetId,
_In_ UCHAR  Lun,
_In_ LONG  QueueTag 
)

◆ ScsiPortGetUncachedExtension()

_Must_inspect_result_ SCSIPORT_API PVOID NTAPI ScsiPortGetUncachedExtension ( _In_ PVOID  HwDeviceExtension,
_In_ PPORT_CONFIGURATION_INFORMATION  ConfigInfo,
_In_ ULONG  NumberOfBytes 
)

◆ ScsiPortGetVirtualAddress()

_Must_inspect_result_ SCSIPORT_API PVOID NTAPI ScsiPortGetVirtualAddress ( _In_ PVOID  HwDeviceExtension,
_In_ SCSI_PHYSICAL_ADDRESS  PhysicalAddress 
)

◆ ScsiPortIoMapTransfer()

SCSIPORT_API VOID NTAPI ScsiPortIoMapTransfer ( _In_ PVOID  HwDeviceExtension,
_In_ PSCSI_REQUEST_BLOCK  Srb,
_In_ PVOID  LogicalAddress,
_In_ ULONG  Length 
)

◆ ScsiPortLogError()

SCSIPORT_API VOID NTAPI ScsiPortLogError ( _In_ PVOID  HwDeviceExtension,
_In_opt_ PSCSI_REQUEST_BLOCK  Srb,
_In_ UCHAR  PathId,
_In_ UCHAR  TargetId,
_In_ UCHAR  Lun,
_In_ ULONG  ErrorCode,
_In_ ULONG  UniqueId 
)

◆ ScsiPortMoveMemory()

SCSIPORT_API VOID NTAPI ScsiPortMoveMemory ( _In_ PVOID  WriteBuffer,
_In_ PVOID  ReadBuffer,
_In_ ULONG  Length 
)

◆ ScsiPortNotification()

SCSIPORT_API VOID __cdecl ScsiPortNotification ( _In_ SCSI_NOTIFICATION_TYPE  NotificationType,
_In_ PVOID  HwDeviceExtension,
  ... 
)

◆ ScsiPortQuerySystemTime()

SCSIPORT_API VOID NTAPI ScsiPortQuerySystemTime ( _Out_ PLARGE_INTEGER  CurrentTime)

◆ ScsiPortReadPortBufferUchar()

SCSIPORT_API VOID NTAPI ScsiPortReadPortBufferUchar ( _In_ PUCHAR  Port,
_In_ PUCHAR  Buffer,
_In_ ULONG  Count 
)

◆ ScsiPortReadPortBufferUlong()

SCSIPORT_API VOID NTAPI ScsiPortReadPortBufferUlong ( _In_ PULONG  Port,
_In_ PULONG  Buffer,
_In_ ULONG  Count 
)

◆ ScsiPortReadPortBufferUshort()

SCSIPORT_API VOID NTAPI ScsiPortReadPortBufferUshort ( _In_ PUSHORT  Port,
_In_ PUSHORT  Buffer,
_In_ ULONG  Count 
)

◆ ScsiPortReadPortUchar()

_Must_inspect_result_ SCSIPORT_API UCHAR NTAPI ScsiPortReadPortUchar ( _In_ PUCHAR  Port)

◆ ScsiPortReadPortUlong()

_Must_inspect_result_ SCSIPORT_API ULONG NTAPI ScsiPortReadPortUlong ( _In_ PULONG  Port)

◆ ScsiPortReadPortUshort()

_Must_inspect_result_ SCSIPORT_API USHORT NTAPI ScsiPortReadPortUshort ( _In_ PUSHORT  Port)

◆ ScsiPortReadRegisterBufferUchar()

SCSIPORT_API VOID NTAPI ScsiPortReadRegisterBufferUchar ( _In_ PUCHAR  Register,
_In_ PUCHAR  Buffer,
_In_ ULONG  Count 
)

◆ ScsiPortReadRegisterBufferUlong()

SCSIPORT_API VOID NTAPI ScsiPortReadRegisterBufferUlong ( _In_ PULONG  Register,
_In_ PULONG  Buffer,
_In_ ULONG  Count 
)

◆ ScsiPortReadRegisterBufferUshort()

SCSIPORT_API VOID NTAPI ScsiPortReadRegisterBufferUshort ( _In_ PUSHORT  Register,
_In_ PUSHORT  Buffer,
_In_ ULONG  Count 
)

◆ ScsiPortReadRegisterUchar()

_Must_inspect_result_ SCSIPORT_API UCHAR NTAPI ScsiPortReadRegisterUchar ( _In_ PUCHAR  Register)

◆ ScsiPortReadRegisterUlong()

_Must_inspect_result_ SCSIPORT_API ULONG NTAPI ScsiPortReadRegisterUlong ( _In_ PULONG  Register)

◆ ScsiPortReadRegisterUshort()

_Must_inspect_result_ SCSIPORT_API USHORT NTAPI ScsiPortReadRegisterUshort ( _In_ PUSHORT  Register)

◆ ScsiPortSetBusDataByOffset()

_Must_inspect_result_ SCSIPORT_API ULONG NTAPI ScsiPortSetBusDataByOffset ( _In_ PVOID  DeviceExtension,
_In_ ULONG  BusDataType,
_In_ ULONG  SystemIoBusNumber,
_In_ ULONG  SlotNumber,
_In_reads_bytes_(Length) PVOID  Buffer,
_In_ ULONG  Offset,
_In_ ULONG  Length 
)

◆ ScsiPortStallExecution()

SCSIPORT_API VOID NTAPI ScsiPortStallExecution ( _In_ ULONG  Delay)

◆ ScsiPortValidateRange()

_Must_inspect_result_ SCSIPORT_API BOOLEAN NTAPI ScsiPortValidateRange ( _In_ PVOID  HwDeviceExtension,
_In_ INTERFACE_TYPE  BusType,
_In_ ULONG  SystemIoBusNumber,
_In_ SCSI_PHYSICAL_ADDRESS  IoAddress,
_In_ ULONG  NumberOfBytes,
_In_ BOOLEAN  InIoSpace 
)

◆ ScsiPortWritePortBufferUchar()

SCSIPORT_API VOID NTAPI ScsiPortWritePortBufferUchar ( _In_ PUCHAR  Port,
_In_ PUCHAR  Buffer,
_In_ ULONG  Count 
)

◆ ScsiPortWritePortBufferUlong()

SCSIPORT_API VOID NTAPI ScsiPortWritePortBufferUlong ( _In_ PULONG  Port,
_In_ PULONG  Buffer,
_In_ ULONG  Count 
)

◆ ScsiPortWritePortBufferUshort()

SCSIPORT_API VOID NTAPI ScsiPortWritePortBufferUshort ( _In_ PUSHORT  Port,
_In_ PUSHORT  Buffer,
_In_ ULONG  Count 
)

◆ ScsiPortWritePortUchar()

SCSIPORT_API VOID NTAPI ScsiPortWritePortUchar ( _In_ PUCHAR  Port,
_In_ UCHAR  Value 
)

◆ ScsiPortWritePortUlong()

SCSIPORT_API VOID NTAPI ScsiPortWritePortUlong ( _In_ PULONG  Port,
_In_ ULONG  Value 
)

◆ ScsiPortWritePortUshort()

SCSIPORT_API VOID NTAPI ScsiPortWritePortUshort ( _In_ PUSHORT  Port,
_In_ USHORT  Value 
)

◆ ScsiPortWriteRegisterBufferUchar()

SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterBufferUchar ( _In_ PUCHAR  Register,
_In_ PUCHAR  Buffer,
_In_ ULONG  Count 
)

◆ ScsiPortWriteRegisterBufferUlong()

SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterBufferUlong ( _In_ PULONG  Register,
_In_ PULONG  Buffer,
_In_ ULONG  Count 
)

◆ ScsiPortWriteRegisterBufferUshort()

SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterBufferUshort ( _In_ PUSHORT  Register,
_In_ PUSHORT  Buffer,
_In_ ULONG  Count 
)

◆ ScsiPortWriteRegisterUchar()

SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterUchar ( _In_ PUCHAR  Register,
_In_ UCHAR  Value 
)

◆ ScsiPortWriteRegisterUlong()

SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterUlong ( _In_ PULONG  Register,
_In_ ULONG  Value 
)

◆ ScsiPortWriteRegisterUshort()

SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterUshort ( _In_ PUSHORT  Register,
_In_ USHORT  Value 
)

Variable Documentation

◆ Argument2

Definition at line 896 of file srb.h.

◆ HwContext

◆ HwInitializationData

◆ PSTORAGE_REQUEST_BLOCK

* PSTORAGE_REQUEST_BLOCK

Definition at line 652 of file srb.h.

Referenced by __drv_allocatesMem(), _IRQL_requires_max_(), ClassAsynchronousCompletion(), ClassDeviceControl(), ClassGetLBProvisioningLogPage(), ClassInterpretSenseInfo(), ClassIoComplete(), ClasspBuildRequestEx(), ClasspCleanupProtectedLocks(), ClasspDeviceGetBlockLimitsVPDPage(), ClasspDeviceGetLBProvisioningVPDPage(), ClasspEjectionControl(), ClasspGetBlockDeviceTokenLimitsInfo(), ClasspGetInquiryVpdSupportInfo(), ClasspInterpretGesnData(), ClasspPowerDownCompletion(), ClasspPowerHandler(), ClasspPowerUpCompletion(), ClasspPrepareMcnIrp(), ClasspReleaseQueue(), ClasspSrbSetOriginalIrp(), ClassReadCapacity16(), ClassSendStartUnit(), DeviceProcessDsmTrimRequest(), DiskFdoProcessError(), DiskFlushDispatch(), DiskInfoExceptionCheck(), DiskInfoExceptionComplete(), DiskIoctlGetMediaTypesEx(), DiskIoctlIsWritable(), DiskIoctlReassignBlocks(), DiskIoctlReassignBlocksEx(), DiskIoctlVerifyThread(), DiskModeSelect(), DiskPerformSmartCommand(), DiskShutdownFlush(), InitializeTransferPackets(), InterpretSenseInfoWithoutHistory(), InterpretTransferPacketError(), ResetBus(), RetryPowerRequest(), SetupDriveCapacityTransferPacket(), SetupEjectionTransferPacket(), SetupModeSelectTransferPacket(), SetupModeSenseTransferPacket(), SetupReadWriteTransferPacket(), SrbAssignSrbFlags(), SrbClearSrbFlags(), SrbCopySrb(), SrbGetCdb(), SrbGetCdbLength(), SrbGetDataBuffer(), SrbGetDataTransferLength(), SrbGetLun(), SrbGetMiniportContext(), SrbGetNextSrb(), SrbGetOriginalRequest(), SrbGetPathId(), SrbGetPathTargetLun(), SrbGetPortContext(), SrbGetQueueTag(), SrbGetRequestAttribute(), SrbGetScsiStatus(), SrbGetSenseInfoBuffer(), SrbGetSenseInfoBufferLength(), SrbGetSrbFlags(), SrbGetSrbFunction(), SrbGetSrbLength(), SrbGetSrbStatus(), SrbGetSystemStatus(), SrbGetTargetId(), SrbGetTimeOutValue(), SrbSetCdbLength(), SrbSetDataBuffer(), SrbSetDataTransferLength(), SrbSetNextSrb(), SrbSetOriginalRequest(), SrbSetPortContext(), SrbSetQueueSortKey(), SrbSetQueueTag(), SrbSetRequestAttribute(), SrbSetScsiStatus(), SrbSetSenseInfoBuffer(), SrbSetSenseInfoBufferLength(), SrbSetSrbFlags(), SrbSetSrbLength(), SrbSetSrbStatus(), SrbSetSystemStatus(), SrbSetTimeOutValue(), and SrbZeroSrb().

◆ STORAGE_REQUEST_BLOCK