ReactOS 0.4.15-dev-7788-g1ad9096
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_BUSES_PER_ADAPTER   255
 
#define SCSI_MAXIMUM_TARGETS_PER_BUS   128
 
#define SCSI_MAXIMUM_LUNS_PER_TARGET   255
 
#define SCSI_MINIMUM_PHYSICAL_BREAKS   16
 
#define SCSI_MAXIMUM_PHYSICAL_BREAKS   255
 
#define SCSI_MAXIMUM_BUSES   8
 
#define SCSI_MAXIMUM_TARGETS   8
 
#define SCSI_MAXIMUM_LOGICAL_UNITS   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
 Queries information details about a security descriptor.
 
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 271 of file srb.h.

◆ DebugPrint

#define DebugPrint (   x)

Definition at line 66 of file srb.h.

◆ MAXIMUM_CDB_SIZE

#define MAXIMUM_CDB_SIZE   12

Definition at line 61 of file srb.h.

◆ POINTER_ALIGN

#define POINTER_ALIGN

Definition at line 453 of file srb.h.

◆ REQUEST_INFO_HYBRID_WRITE_THROUGH_FLAG

#define REQUEST_INFO_HYBRID_WRITE_THROUGH_FLAG   0x00000020

Definition at line 590 of file srb.h.

◆ REQUEST_INFO_NO_CACHE_FLAG

#define REQUEST_INFO_NO_CACHE_FLAG   0x00000001

Definition at line 585 of file srb.h.

◆ REQUEST_INFO_NO_FILE_OBJECT_FLAG

#define REQUEST_INFO_NO_FILE_OBJECT_FLAG   0x00000040

Definition at line 594 of file srb.h.

◆ REQUEST_INFO_PAGING_IO_FLAG

#define REQUEST_INFO_PAGING_IO_FLAG   0x00000002

Definition at line 586 of file srb.h.

◆ REQUEST_INFO_SEQUENTIAL_IO_FLAG

#define REQUEST_INFO_SEQUENTIAL_IO_FLAG   0x00000004

Definition at line 587 of file srb.h.

◆ REQUEST_INFO_STREAM_FLAG

#define REQUEST_INFO_STREAM_FLAG   0x00000100

Definition at line 596 of file srb.h.

◆ REQUEST_INFO_TEMPORARY_FLAG

#define REQUEST_INFO_TEMPORARY_FLAG   0x00000008

Definition at line 588 of file srb.h.

◆ REQUEST_INFO_VALID_CACHEPRIORITY_FLAG

#define REQUEST_INFO_VALID_CACHEPRIORITY_FLAG   0x80000000

Definition at line 600 of file srb.h.

◆ REQUEST_INFO_VOLSNAP_IO_FLAG

#define REQUEST_INFO_VOLSNAP_IO_FLAG   0x00000080

Definition at line 595 of file srb.h.

◆ REQUEST_INFO_WRITE_THROUGH_FLAG

#define REQUEST_INFO_WRITE_THROUGH_FLAG   0x00000010

Definition at line 589 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)))
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
unsigned char UCHAR
Definition: xmlstorage.h:181

Definition at line 69 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))))
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413

Definition at line 74 of file srb.h.

◆ SCSI_DMA64_MINIPORT_SUPPORTED

#define SCSI_DMA64_MINIPORT_SUPPORTED   0x01

Definition at line 48 of file srb.h.

◆ SCSI_DMA64_SYSTEM_SUPPORTED

#define SCSI_DMA64_SYSTEM_SUPPORTED   0x80

Definition at line 49 of file srb.h.

◆ SCSI_MAXIMUM_BUSES

#define SCSI_MAXIMUM_BUSES   8

Definition at line 43 of file srb.h.

◆ SCSI_MAXIMUM_BUSES_PER_ADAPTER

#define SCSI_MAXIMUM_BUSES_PER_ADAPTER   255

Definition at line 34 of file srb.h.

◆ SCSI_MAXIMUM_LOGICAL_UNITS

#define SCSI_MAXIMUM_LOGICAL_UNITS   8

Definition at line 45 of file srb.h.

◆ SCSI_MAXIMUM_LUNS_PER_TARGET

#define SCSI_MAXIMUM_LUNS_PER_TARGET   255

Definition at line 37 of file srb.h.

◆ SCSI_MAXIMUM_PHYSICAL_BREAKS

#define SCSI_MAXIMUM_PHYSICAL_BREAKS   255

Definition at line 39 of file srb.h.

◆ SCSI_MAXIMUM_TARGETS

#define SCSI_MAXIMUM_TARGETS   8

Definition at line 44 of file srb.h.

◆ SCSI_MAXIMUM_TARGETS_PER_BUS

#define SCSI_MAXIMUM_TARGETS_PER_BUS   128

Definition at line 36 of file srb.h.

◆ SCSI_MINIMUM_PHYSICAL_BREAKS

#define SCSI_MINIMUM_PHYSICAL_BREAKS   16

Definition at line 38 of file srb.h.

◆ SCSI_REQUEST_BLOCK_SIZE

#define SCSI_REQUEST_BLOCK_SIZE   sizeof(SCSI_REQUEST_BLOCK)

Definition at line 327 of file srb.h.

◆ SCSIPORT_API

#define SCSIPORT_API   DECLSPEC_IMPORT

Definition at line 783 of file srb.h.

◆ ScsiPortConvertPhysicalAddressToUlong

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

Definition at line 803 of file srb.h.

◆ ScsiPortConvertPhysicalAddressToULongPtr

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

Definition at line 804 of file srb.h.

◆ SP_BAD_FW_ERROR

#define SP_BAD_FW_ERROR   0x000a

Definition at line 199 of file srb.h.

◆ SP_BAD_FW_WARNING

#define SP_BAD_FW_WARNING   0x0009

Definition at line 198 of file srb.h.

◆ SP_BUS_PARITY_ERROR

#define SP_BUS_PARITY_ERROR   0x0001

Definition at line 190 of file srb.h.

◆ SP_BUS_TIME_OUT

#define SP_BUS_TIME_OUT   0x0004

Definition at line 193 of file srb.h.

◆ SP_INTERNAL_ADAPTER_ERROR

#define SP_INTERNAL_ADAPTER_ERROR   0x0006

Definition at line 195 of file srb.h.

◆ SP_INVALID_RESELECTION

#define SP_INVALID_RESELECTION   0x0003

Definition at line 192 of file srb.h.

◆ SP_IRQ_NOT_RESPONDING

#define SP_IRQ_NOT_RESPONDING   0x0008

Definition at line 197 of file srb.h.

◆ SP_LOST_WMI_MINIPORT_REQUEST

#define SP_LOST_WMI_MINIPORT_REQUEST   0x000b

Definition at line 200 of file srb.h.

◆ SP_PROTOCOL_ERROR

#define SP_PROTOCOL_ERROR   0x0005

Definition at line 194 of file srb.h.

◆ SP_REQUEST_TIMEOUT

#define SP_REQUEST_TIMEOUT   0x0007

Definition at line 196 of file srb.h.

◆ SP_RETURN_BAD_CONFIG

#define SP_RETURN_BAD_CONFIG   3

Definition at line 207 of file srb.h.

◆ SP_RETURN_ERROR

#define SP_RETURN_ERROR   2

Definition at line 206 of file srb.h.

◆ SP_RETURN_FOUND

#define SP_RETURN_FOUND   1

Definition at line 205 of file srb.h.

◆ SP_RETURN_NOT_FOUND

#define SP_RETURN_NOT_FOUND   0

Definition at line 204 of file srb.h.

◆ SP_UNEXPECTED_DISCONNECT

#define SP_UNEXPECTED_DISCONNECT   0x0002

Definition at line 191 of file srb.h.

◆ SP_UNINITIALIZED_VALUE

#define SP_UNINITIALIZED_VALUE   ((ULONG) ~0)

Definition at line 54 of file srb.h.

◆ SP_UNTAGGED

#define SP_UNTAGGED   ((UCHAR) ~0)

Definition at line 55 of file srb.h.

◆ SP_VER_TRACE_SUPPORT

#define SP_VER_TRACE_SUPPORT   0x0010

Definition at line 202 of file srb.h.

◆ SRB_ALIGN

#define SRB_ALIGN

Definition at line 452 of file srb.h.

◆ SRB_FLAGS_ADAPTER_CACHE_ENABLE

#define SRB_FLAGS_ADAPTER_CACHE_ENABLE   0x00000200

Definition at line 163 of file srb.h.

◆ SRB_FLAGS_ALLOCATED_FROM_ZONE

#define SRB_FLAGS_ALLOCATED_FROM_ZONE   0x00020000

Definition at line 168 of file srb.h.

◆ SRB_FLAGS_BYPASS_FROZEN_QUEUE

#define SRB_FLAGS_BYPASS_FROZEN_QUEUE   0x00000010

Definition at line 156 of file srb.h.

◆ SRB_FLAGS_BYPASS_LOCKED_QUEUE

#define SRB_FLAGS_BYPASS_LOCKED_QUEUE   0x00080000

Definition at line 170 of file srb.h.

◆ SRB_FLAGS_CLASS_DRIVER_RESERVED

#define SRB_FLAGS_CLASS_DRIVER_RESERVED   0xF0000000

Definition at line 176 of file srb.h.

◆ SRB_FLAGS_D3_PROCESSING

#define SRB_FLAGS_D3_PROCESSING   0x00000800

Definition at line 165 of file srb.h.

◆ SRB_FLAGS_DATA_IN

#define SRB_FLAGS_DATA_IN   0x00000040

Definition at line 158 of file srb.h.

◆ SRB_FLAGS_DATA_OUT

#define SRB_FLAGS_DATA_OUT   0x00000080

Definition at line 159 of file srb.h.

◆ SRB_FLAGS_DISABLE_AUTOSENSE

#define SRB_FLAGS_DISABLE_AUTOSENSE   0x00000020

Definition at line 157 of file srb.h.

◆ SRB_FLAGS_DISABLE_DISCONNECT

#define SRB_FLAGS_DISABLE_DISCONNECT   0x00000004

Definition at line 154 of file srb.h.

◆ SRB_FLAGS_DISABLE_SYNCH_TRANSFER

#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER   0x00000008

Definition at line 155 of file srb.h.

◆ SRB_FLAGS_DONT_START_NEXT_PACKET

#define SRB_FLAGS_DONT_START_NEXT_PACKET   0x00800000

Definition at line 174 of file srb.h.

◆ SRB_FLAGS_FREE_SENSE_BUFFER

#define SRB_FLAGS_FREE_SENSE_BUFFER   0x00000400

Definition at line 164 of file srb.h.

◆ SRB_FLAGS_IS_ACTIVE

#define SRB_FLAGS_IS_ACTIVE   0x00010000

Definition at line 167 of file srb.h.

◆ SRB_FLAGS_NO_DATA_TRANSFER

#define SRB_FLAGS_NO_DATA_TRANSFER   0x00000000

Definition at line 160 of file srb.h.

◆ SRB_FLAGS_NO_KEEP_AWAKE

#define SRB_FLAGS_NO_KEEP_AWAKE   0x00100000

Definition at line 171 of file srb.h.

◆ SRB_FLAGS_NO_QUEUE_FREEZE

#define SRB_FLAGS_NO_QUEUE_FREEZE   0x00000100

Definition at line 162 of file srb.h.

◆ SRB_FLAGS_PORT_DRIVER_ALLOCSENSE

#define SRB_FLAGS_PORT_DRIVER_ALLOCSENSE   0x00200000

Definition at line 172 of file srb.h.

◆ SRB_FLAGS_PORT_DRIVER_RESERVED

#define SRB_FLAGS_PORT_DRIVER_RESERVED   0x0F000000

Definition at line 175 of file srb.h.

◆ SRB_FLAGS_PORT_DRIVER_SENSEHASPORT

#define SRB_FLAGS_PORT_DRIVER_SENSEHASPORT   0x00400000

Definition at line 173 of file srb.h.

◆ SRB_FLAGS_QUEUE_ACTION_ENABLE

#define SRB_FLAGS_QUEUE_ACTION_ENABLE   0x00000002

Definition at line 153 of file srb.h.

◆ SRB_FLAGS_SEQUENTIAL_REQUIRED

#define SRB_FLAGS_SEQUENTIAL_REQUIRED   0x00001000

Definition at line 166 of file srb.h.

◆ SRB_FLAGS_SGLIST_FROM_POOL

#define SRB_FLAGS_SGLIST_FROM_POOL   0x00040000

Definition at line 169 of file srb.h.

◆ SRB_FLAGS_UNSPECIFIED_DIRECTION

#define SRB_FLAGS_UNSPECIFIED_DIRECTION   (SRB_FLAGS_DATA_IN | SRB_FLAGS_DATA_OUT)

Definition at line 161 of file srb.h.

◆ SRB_FUNCTION_ABORT_COMMAND

#define SRB_FUNCTION_ABORT_COMMAND   0x10

Definition at line 89 of file srb.h.

◆ SRB_FUNCTION_ATTACH_DEVICE

#define SRB_FUNCTION_ATTACH_DEVICE   0x05

Definition at line 84 of file srb.h.

◆ SRB_FUNCTION_CLAIM_DEVICE

#define SRB_FUNCTION_CLAIM_DEVICE   0x01

Definition at line 80 of file srb.h.

◆ SRB_FUNCTION_CRYPTO_OPERATION

#define SRB_FUNCTION_CRYPTO_OPERATION   0x29

Definition at line 109 of file srb.h.

◆ SRB_FUNCTION_DUMP_POINTERS

#define SRB_FUNCTION_DUMP_POINTERS   0x26

Definition at line 106 of file srb.h.

◆ SRB_FUNCTION_EXECUTE_SCSI

#define SRB_FUNCTION_EXECUTE_SCSI   0x00

Definition at line 79 of file srb.h.

◆ SRB_FUNCTION_FLUSH

#define SRB_FUNCTION_FLUSH   0x08

Definition at line 87 of file srb.h.

◆ SRB_FUNCTION_FLUSH_QUEUE

#define SRB_FUNCTION_FLUSH_QUEUE   0x15

Definition at line 94 of file srb.h.

◆ SRB_FUNCTION_FREE_DUMP_INFO

#define SRB_FUNCTION_FREE_DUMP_INFO   0x2b

Definition at line 111 of file srb.h.

◆ SRB_FUNCTION_FREE_DUMP_POINTERS

#define SRB_FUNCTION_FREE_DUMP_POINTERS   0x27

Definition at line 107 of file srb.h.

◆ SRB_FUNCTION_GET_DUMP_INFO

#define SRB_FUNCTION_GET_DUMP_INFO   0x2a

Definition at line 110 of file srb.h.

◆ SRB_FUNCTION_IO_CONTROL

#define SRB_FUNCTION_IO_CONTROL   0x02

Definition at line 81 of file srb.h.

◆ SRB_FUNCTION_LINK_TIMEOUT_COMPLETE

#define SRB_FUNCTION_LINK_TIMEOUT_COMPLETE   0x23

Definition at line 103 of file srb.h.

◆ SRB_FUNCTION_LINK_TIMEOUT_OCCURRED

#define SRB_FUNCTION_LINK_TIMEOUT_OCCURRED   0x22

Definition at line 102 of file srb.h.

◆ SRB_FUNCTION_LOCK_QUEUE

#define SRB_FUNCTION_LOCK_QUEUE   0x18

Definition at line 97 of file srb.h.

◆ SRB_FUNCTION_PNP

#define SRB_FUNCTION_PNP   0x25

Definition at line 105 of file srb.h.

◆ SRB_FUNCTION_POWER

#define SRB_FUNCTION_POWER   0x24

Definition at line 104 of file srb.h.

◆ SRB_FUNCTION_PROTOCOL_COMMAND

#define SRB_FUNCTION_PROTOCOL_COMMAND   0x09

Definition at line 88 of file srb.h.

◆ SRB_FUNCTION_QUIESCE_DEVICE

#define SRB_FUNCTION_QUIESCE_DEVICE   0x1a

Definition at line 99 of file srb.h.

◆ SRB_FUNCTION_RECEIVE_EVENT

#define SRB_FUNCTION_RECEIVE_EVENT   0x03

Definition at line 82 of file srb.h.

◆ SRB_FUNCTION_RELEASE_DEVICE

#define SRB_FUNCTION_RELEASE_DEVICE   0x06

Definition at line 85 of file srb.h.

◆ SRB_FUNCTION_RELEASE_QUEUE

#define SRB_FUNCTION_RELEASE_QUEUE   0x04

Definition at line 83 of file srb.h.

◆ SRB_FUNCTION_RELEASE_RECOVERY

#define SRB_FUNCTION_RELEASE_RECOVERY   0x11

Definition at line 90 of file srb.h.

◆ SRB_FUNCTION_REMOVE_DEVICE

#define SRB_FUNCTION_REMOVE_DEVICE   0x16

Definition at line 95 of file srb.h.

◆ SRB_FUNCTION_RESET_BUS

#define SRB_FUNCTION_RESET_BUS   0x12

Definition at line 91 of file srb.h.

◆ SRB_FUNCTION_RESET_DEVICE

#define SRB_FUNCTION_RESET_DEVICE   0x13

Definition at line 92 of file srb.h.

◆ SRB_FUNCTION_RESET_LOGICAL_UNIT

#define SRB_FUNCTION_RESET_LOGICAL_UNIT   0x20

Definition at line 100 of file srb.h.

◆ SRB_FUNCTION_SET_LINK_TIMEOUT

#define SRB_FUNCTION_SET_LINK_TIMEOUT   0x21

Definition at line 101 of file srb.h.

◆ SRB_FUNCTION_SHUTDOWN

#define SRB_FUNCTION_SHUTDOWN   0x07

Definition at line 86 of file srb.h.

◆ SRB_FUNCTION_STORAGE_REQUEST_BLOCK

#define SRB_FUNCTION_STORAGE_REQUEST_BLOCK   0x28

Definition at line 108 of file srb.h.

◆ SRB_FUNCTION_TERMINATE_IO

#define SRB_FUNCTION_TERMINATE_IO   0x14

Definition at line 93 of file srb.h.

◆ SRB_FUNCTION_UNLOCK_QUEUE

#define SRB_FUNCTION_UNLOCK_QUEUE   0x19

Definition at line 98 of file srb.h.

◆ SRB_FUNCTION_WMI

#define SRB_FUNCTION_WMI   0x17

Definition at line 96 of file srb.h.

◆ SRB_HEAD_OF_QUEUE_TAG_REQUEST

#define SRB_HEAD_OF_QUEUE_TAG_REQUEST   0x21

Definition at line 183 of file srb.h.

◆ SRB_ORDERED_QUEUE_TAG_REQUEST

#define SRB_ORDERED_QUEUE_TAG_REQUEST   0x22

Definition at line 184 of file srb.h.

◆ SRB_PNP_FLAGS_ADAPTER_REQUEST

#define SRB_PNP_FLAGS_ADAPTER_REQUEST   0x0001

Definition at line 188 of file srb.h.

◆ SRB_POWER_FLAGS_ADAPTER_REQUEST

#define SRB_POWER_FLAGS_ADAPTER_REQUEST   0x0001

Definition at line 187 of file srb.h.

◆ SRB_SIGNATURE

#define SRB_SIGNATURE   0x53524258

Definition at line 616 of file srb.h.

◆ SRB_SIMPLE_TAG_REQUEST

#define SRB_SIMPLE_TAG_REQUEST   0x20

Definition at line 182 of file srb.h.

◆ SRB_STATUS

Definition at line 149 of file srb.h.

◆ SRB_STATUS_ABORT_FAILED

#define SRB_STATUS_ABORT_FAILED   0x03

Definition at line 117 of file srb.h.

◆ SRB_STATUS_ABORTED

#define SRB_STATUS_ABORTED   0x02

Definition at line 116 of file srb.h.

◆ SRB_STATUS_AUTOSENSE_VALID

#define SRB_STATUS_AUTOSENSE_VALID   0x80

Definition at line 147 of file srb.h.

◆ SRB_STATUS_BAD_FUNCTION

#define SRB_STATUS_BAD_FUNCTION   0x22

Definition at line 138 of file srb.h.

◆ SRB_STATUS_BAD_SRB_BLOCK_LENGTH

#define SRB_STATUS_BAD_SRB_BLOCK_LENGTH   0x15

Definition at line 134 of file srb.h.

◆ SRB_STATUS_BUS_RESET

#define SRB_STATUS_BUS_RESET   0x0E

Definition at line 127 of file srb.h.

◆ SRB_STATUS_BUSY

#define SRB_STATUS_BUSY   0x05

Definition at line 119 of file srb.h.

◆ SRB_STATUS_COMMAND_TIMEOUT

#define SRB_STATUS_COMMAND_TIMEOUT   0x0B

Definition at line 125 of file srb.h.

◆ SRB_STATUS_DATA_OVERRUN

#define SRB_STATUS_DATA_OVERRUN   0x12

Definition at line 131 of file srb.h.

◆ SRB_STATUS_ERROR

#define SRB_STATUS_ERROR   0x04

Definition at line 118 of file srb.h.

◆ SRB_STATUS_ERROR_RECOVERY

#define SRB_STATUS_ERROR_RECOVERY   0x23

Definition at line 139 of file srb.h.

◆ SRB_STATUS_INSUFFICIENT_RESOURCES

#define SRB_STATUS_INSUFFICIENT_RESOURCES   0x26

Definition at line 142 of file srb.h.

◆ SRB_STATUS_INTERNAL_ERROR

#define SRB_STATUS_INTERNAL_ERROR   0x30

Definition at line 144 of file srb.h.

◆ SRB_STATUS_INVALID_LUN

#define SRB_STATUS_INVALID_LUN   0x20

Definition at line 136 of file srb.h.

◆ SRB_STATUS_INVALID_PATH_ID

#define SRB_STATUS_INVALID_PATH_ID   0x07

Definition at line 121 of file srb.h.

◆ SRB_STATUS_INVALID_REQUEST

#define SRB_STATUS_INVALID_REQUEST   0x06

Definition at line 120 of file srb.h.

◆ SRB_STATUS_INVALID_TARGET_ID

#define SRB_STATUS_INVALID_TARGET_ID   0x21

Definition at line 137 of file srb.h.

◆ SRB_STATUS_LINK_DOWN

#define SRB_STATUS_LINK_DOWN   0x25

Definition at line 141 of file srb.h.

◆ SRB_STATUS_MESSAGE_REJECTED

#define SRB_STATUS_MESSAGE_REJECTED   0x0D

Definition at line 126 of file srb.h.

◆ SRB_STATUS_NO_DEVICE

#define SRB_STATUS_NO_DEVICE   0x08

Definition at line 122 of file srb.h.

◆ SRB_STATUS_NO_HBA

#define SRB_STATUS_NO_HBA   0x11

Definition at line 130 of file srb.h.

◆ SRB_STATUS_NOT_POWERED

#define SRB_STATUS_NOT_POWERED   0x24

Definition at line 140 of file srb.h.

◆ SRB_STATUS_PARITY_ERROR

#define SRB_STATUS_PARITY_ERROR   0x0F

Definition at line 128 of file srb.h.

◆ SRB_STATUS_PENDING

#define SRB_STATUS_PENDING   0x00

Definition at line 114 of file srb.h.

◆ SRB_STATUS_PHASE_SEQUENCE_FAILURE

#define SRB_STATUS_PHASE_SEQUENCE_FAILURE   0x14

Definition at line 133 of file srb.h.

◆ SRB_STATUS_QUEUE_FROZEN

#define SRB_STATUS_QUEUE_FROZEN   0x40

Definition at line 146 of file srb.h.

◆ SRB_STATUS_REQUEST_FLUSHED

#define SRB_STATUS_REQUEST_FLUSHED   0x16

Definition at line 135 of file srb.h.

◆ SRB_STATUS_REQUEST_SENSE_FAILED

#define SRB_STATUS_REQUEST_SENSE_FAILED   0x10

Definition at line 129 of file srb.h.

◆ SRB_STATUS_SELECTION_TIMEOUT

#define SRB_STATUS_SELECTION_TIMEOUT   0x0A

Definition at line 124 of file srb.h.

◆ SRB_STATUS_SUCCESS

#define SRB_STATUS_SUCCESS   0x01

Definition at line 115 of file srb.h.

◆ SRB_STATUS_THROTTLED_REQUEST

#define SRB_STATUS_THROTTLED_REQUEST   0x27

Definition at line 143 of file srb.h.

◆ SRB_STATUS_TIMEOUT

#define SRB_STATUS_TIMEOUT   0x09

Definition at line 123 of file srb.h.

◆ SRB_STATUS_UNEXPECTED_BUS_FREE

#define SRB_STATUS_UNEXPECTED_BUS_FREE   0x13

Definition at line 132 of file srb.h.

◆ SRB_TYPE_SCSI_REQUEST_BLOCK

#define SRB_TYPE_SCSI_REQUEST_BLOCK   0

Definition at line 663 of file srb.h.

◆ SRB_TYPE_STORAGE_REQUEST_BLOCK

#define SRB_TYPE_STORAGE_REQUEST_BLOCK   1

Definition at line 664 of file srb.h.

◆ SRB_WMI_FLAGS_ADAPTER_REQUEST

#define SRB_WMI_FLAGS_ADAPTER_REQUEST   0x0001

Definition at line 186 of file srb.h.

◆ SRBEV_BUS_RESET

#define SRBEV_BUS_RESET   0x0001

Definition at line 58 of file srb.h.

◆ SRBEV_SCSI_ASYNC_NOTIFICATION

#define SRBEV_SCSI_ASYNC_NOTIFICATION   0x0002

Definition at line 59 of file srb.h.

◆ SRBEX_DATA_BIDIRECTIONAL_LENGTH

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

Definition at line 476 of file srb.h.

◆ SRBEX_DATA_IO_INFO_LENGTH

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

Definition at line 583 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 569 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 556 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 489 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 506 of file srb.h.

◆ SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MAX

#define SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MAX   0xffffffffUL

Definition at line 524 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 523 of file srb.h.

◆ SRBEX_DATA_WMI_LENGTH

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

Definition at line 542 of file srb.h.

◆ STORAGE_ADDRESS_TYPE_BTL8

#define STORAGE_ADDRESS_TYPE_BTL8   0

Definition at line 666 of file srb.h.

◆ STORAGE_REQUEST_BLOCK_VERSION_1

#define STORAGE_REQUEST_BLOCK_VERSION_1   0x1

Definition at line 617 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 724 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 716 of file srb.h.

◆ PHW_DMA_STARTED

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

Definition at line 692 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 698 of file srb.h.

◆ PHW_INITIALIZATION_DATA

◆ PHW_INITIALIZE

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

Definition at line 671 of file srb.h.

◆ PHW_INTERRUPT

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

Definition at line 684 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 709 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 677 of file srb.h.

◆ PHW_TIMER

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

Definition at line 688 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 209 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 209 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 286 of file srb.h.

286 {
@ ScsiAdapterControlSuccess
Definition: srb.h:191
@ ScsiAdapterControlUnsuccessful
Definition: srb.h:192
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 276 of file srb.h.

276 {
@ ScsiRestartAdapter
Definition: srb.h:179
@ ScsiQuerySupportedControlTypes
Definition: srb.h:177
@ ScsiAdapterControlMax
Definition: srb.h:182
@ ScsiSetBootConfig
Definition: srb.h:180
@ ScsiStopAdapter
Definition: srb.h:178
@ MakeAdapterControlTypeSizeOfUlong
Definition: srb.h:183
@ ScsiSetRunningConfig
Definition: srb.h:181
enum _SCSI_ADAPTER_CONTROL_TYPE SCSI_ADAPTER_CONTROL_TYPE
enum _SCSI_ADAPTER_CONTROL_TYPE * PSCSI_ADAPTER_CONTROL_TYPE

◆ _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 730 of file srb.h.

730 {
739 WMIEvent,
741 LinkUp,
742 LinkDown,
enum _SCSI_NOTIFICATION_TYPE * PSCSI_NOTIFICATION_TYPE
enum _SCSI_NOTIFICATION_TYPE SCSI_NOTIFICATION_TYPE
@ ResetDetected
Definition: srb.h:534
@ WMIEvent
Definition: srb.h:539
@ RequestTimerCall
Definition: srb.h:537
@ CallEnableInterrupts
Definition: srb.h:536
@ CallDisableInterrupts
Definition: srb.h:535
@ RequestComplete
Definition: srb.h:531
@ WMIReregister
Definition: srb.h:540
@ NextRequest
Definition: srb.h:532
@ BusChangeDetected
Definition: srb.h:538
@ NextLuRequest
Definition: srb.h:533
@ QueryTickCount
Definition: srb.h:743
@ BufferOverrunDetected
Definition: srb.h:744
@ LinkUp
Definition: srb.h:741
@ TraceNotification
Definition: srb.h:745
@ LinkDown
Definition: srb.h:742

◆ _SRBEXDATATYPE

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

Definition at line 456 of file srb.h.

456 {
462 SrbExDataTypeWmi = 0x60,
465 SrbExDataTypeIoInfo = 0x80,
466 SrbExDataTypeMSReservedStart = 0xf0000000,
467 SrbExDataTypeReserved = 0xffffffff
enum _SRBEXDATATYPE * PSRBEXDATATYPE
@ SrbExDataTypeMSReservedStart
Definition: srb.h:466
@ SrbExDataTypeReserved
Definition: srb.h:467
@ SrbExDataTypeWmi
Definition: srb.h:462
@ SrbExDataTypeScsiCdb32
Definition: srb.h:460
@ SrbExDataTypeBidirectional
Definition: srb.h:458
@ SrbExDataTypeScsiCdb16
Definition: srb.h:459
@ SrbExDataTypePower
Definition: srb.h:463
@ SrbExDataTypeScsiCdbVar
Definition: srb.h:461
@ SrbExDataTypePnP
Definition: srb.h:464
@ SrbExDataTypeUnknown
Definition: srb.h:457
@ SrbExDataTypeIoInfo
Definition: srb.h:465
enum _SRBEXDATATYPE SRBEXDATATYPE

◆ _STOR_DEVICE_POWER_STATE

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

Definition at line 355 of file srb.h.

355 {
enum _STOR_DEVICE_POWER_STATE * PSTOR_DEVICE_POWER_STATE
enum _STOR_DEVICE_POWER_STATE STOR_DEVICE_POWER_STATE
@ StorPowerDeviceMaximum
Definition: srb.h:361
@ StorPowerDeviceD3
Definition: srb.h:360
@ StorPowerDeviceD2
Definition: srb.h:359
@ StorPowerDeviceUnspecified
Definition: srb.h:356
@ StorPowerDeviceD1
Definition: srb.h:358
@ StorPowerDeviceD0
Definition: srb.h:357

◆ _STOR_PNP_ACTION

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

Definition at line 399 of file srb.h.

399 {
400 StorStartDevice = 0x0,
401 StorRemoveDevice = 0x2,
402 StorStopDevice = 0x4,
enum _STOR_PNP_ACTION STOR_PNP_ACTION
enum _STOR_PNP_ACTION * PSTOR_PNP_ACTION
@ StorRemoveDevice
Definition: srb.h:401
@ StorQueryCapabilities
Definition: srb.h:403
@ StorQueryResourceRequirements
Definition: srb.h:404
@ StorFilterResourceRequirements
Definition: srb.h:405
@ StorStopDevice
Definition: srb.h:402
@ StorStartDevice
Definition: srb.h:400
@ StorSurpriseRemoval
Definition: srb.h:406

◆ _STOR_POWER_ACTION

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

Definition at line 364 of file srb.h.

364 {
@ StorPowerActionWarmEject
Definition: srb.h:372
@ StorPowerActionShutdown
Definition: srb.h:369
@ StorPowerActionReserved
Definition: srb.h:366
@ StorPowerActionNone
Definition: srb.h:365
@ StorPowerActionShutdownReset
Definition: srb.h:370
@ StorPowerActionSleep
Definition: srb.h:367
@ StorPowerActionHibernate
Definition: srb.h:368
@ StorPowerActionShutdownOff
Definition: srb.h:371
enum _STOR_POWER_ACTION * PSTOR_POWER_ACTION
enum _STOR_POWER_ACTION STOR_POWER_ACTION

Function Documentation

◆ _IRQL_requires_max_()

_Must_inspect_result_ _IRQL_requires_max_ ( PASSIVE_LEVEL  )

Queries information details about a security descriptor.

Computes the quota size of a security descriptor.

Assigns a security descriptor for a new object.

An extended function that assigns a security descriptor for a new object.

Frees a security descriptor.

An extended function that sets new information data to a security descriptor.

Modifies some information data about a security descriptor.

Parameters
[in]SecurityInformationSecurity information details to be queried from a security descriptor.
[out]SecurityDescriptorThe returned security descriptor with security information data.
[in,out]LengthThe returned length of a security descriptor.
[in,out]ObjectsSecurityDescriptorThe returned object security descriptor.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the specific information about the security descriptor has been queried. STATUS_BUFFER_TOO_SMALL is returned if the buffer size is too small to contain the queried info about the security descriptor.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
See SeSetSecurityDescriptorInfoEx.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]AutoInheritFlagsFlags bitmask inheritation, influencing how the security descriptor can be inherited and if it can be in the first place.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
Returns STATUS_SUCCESS if the operations have been completed without problems and that new info has been set to the security descriptor. STATUS_NO_SECURITY_ON_OBJECT is returned if the object does not have a security descriptor. STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the new security descriptor with new info set has failed.
Parameters
[in]SecurityDescriptorA security descriptor to be freed from memory.
Returns
Returns STATUS_SUCCESS.
Parameters
[in]_ParentDescriptorA security descriptor of the parent object that is being created.
[in]_ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]ObjectTypeThe type of the new object.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]AutoInheritFlagsAutomatic inheritance flags that influence how access control entries within ACLs from security descriptors are inherited.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the security descriptor has been assigned to the new object. STATUS_NO_TOKEN is returned if the caller hasn't supplied a valid argument to a security subject context. STATUS_INVALID_OWNER is returned if the caller hasn't supplied a parent descriptor that belongs to the main user (owner). STATUS_INVALID_PRIMARY_GROUP is returned by the same reason as with the previous NTSTATUS code. The two NTSTATUS codes are returned if the calling thread stated that the owner and/or group is defaulted to the parent descriptor (SEF_DEFAULT_OWNER_FROM_PARENT and/or SEF_DEFAULT_GROUP_FROM_PARENT respectively). STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the descriptor buffer has failed. A failure NTSTATUS is returned otherwise.
Parameters
[in]ParentDescriptorA security descriptor of the parent object that is being created.
[in]ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
See SeAssignSecurityEx.
Parameters
[in]SecurityDescriptorA security descriptor.
[out]QuotaInfoSizeThe returned quota size of the given security descriptor to the caller. The function may return 0 to this parameter if the descriptor doesn't have a group or a discretionary access control list (DACL) even.
Returns
Returns STATUS_SUCCESS if the quota size of a security descriptor has been computed successfully. STATUS_UNKNOWN_REVISION is returned if the security descriptor has an invalid revision.

Definition at line 923 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 */
107 NULL,
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;
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}
static const INTERNET_PORT ServerPort
Definition: CWebService.cpp:11
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
LONG NTSTATUS
Definition: precomp.h:26
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
#define NULL
Definition: types.h:112
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define InsertTailList(ListHead, Entry)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1801
_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:1877
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1875
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1874
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1876
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
Status
Definition: gdiplustypes.h:25
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
static LONG MaxConnections
#define KernelMode
Definition: asm.h:34
#define FILE_READ_DATA
Definition: nt_native.h:628
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
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:2935
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:1039
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121
LIST_ENTRY mList
Definition: fltmgrint.h:56
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135

◆ _Struct_size_bytes_()

typedef _Struct_size_bytes_ ( SrbLength  )

Definition at line 626 of file srb.h.

626 {
630 UCHAR SrbStatus;
631 UCHAR ReservedUchar[4];
636 ULONG SrbLength;
637 ULONG SrbFunction;
638 ULONG SrbFlags;
639 ULONG ReservedUlong;
640 ULONG RequestTag;
641 USHORT RequestPriority;
642 USHORT RequestAttribute;
643 ULONG TimeOutValue;
644 ULONG SystemStatus;
645 ULONG ZeroGuard1;
646 _Field_range_(sizeof(STORAGE_REQUEST_BLOCK), SrbLength - sizeof(STOR_ADDRESS))
647 ULONG AddressOffset;
648 ULONG NumSrbExData;
649 ULONG DataTransferLength;
650 _Field_size_bytes_full_(DataTransferLength)
651 PVOID POINTER_ALIGN DataBuffer;
652 PVOID POINTER_ALIGN ZeroGuard2;
654 PVOID POINTER_ALIGN ClassContext;
655 PVOID POINTER_ALIGN PortContext;
656 PVOID POINTER_ALIGN MiniportContext;
657 struct _STORAGE_REQUEST_BLOCK POINTER_ALIGN *NextSrb;
658 _At_buffer_(SrbExDataOffset, _Iter_, NumSrbExData, _Field_range_(0, SrbLength - sizeof(SRBEX_DATA)))
659 _Field_size_(NumSrbExData)
660 ULONG SrbExDataOffset[ANYSIZE_ARRAY];
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID _In_ ULONG _In_ BOOLEAN _In_opt_ WDFREQUEST OriginalRequest
Definition: cdrom.h:994
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
Definition: cdrom.h:1156
static const WCHAR Signature[]
Definition: parser.c:141
#define _Field_size_(size)
Definition: ms_sal.h:593
#define _Field_size_bytes_full_(size)
Definition: ms_sal.h:604
#define _Field_range_(min, max)
Definition: ms_sal.h:609
#define _At_buffer_(target, iter, bound, annos)
Definition: ms_sal.h:250
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
unsigned short USHORT
Definition: pedump.c:61
_Iter_
Definition: memory.h:71
struct STOR_ADDRESS_ALIGN _STOR_ADDRESS STOR_ADDRESS
#define SRB_SIGNATURE
Definition: srb.h:616
struct SRB_ALIGN _SRBEX_DATA SRBEX_DATA
#define STORAGE_REQUEST_BLOCK_VERSION_1
Definition: srb.h:617
#define SRB_FUNCTION_STORAGE_REQUEST_BLOCK
Definition: srb.h:108
* PSTORAGE_REQUEST_BLOCK
Definition: srb.h:661
#define POINTER_ALIGN
Definition: srb.h:453
STORAGE_REQUEST_BLOCK
Definition: srb.h:661
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469

◆ 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 905 of file srb.h.

◆ HwContext

◆ HwInitializationData

◆ PSTORAGE_REQUEST_BLOCK

* PSTORAGE_REQUEST_BLOCK

Definition at line 661 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