Data Structures |
| struct | PACCESS_RANGE |
| struct | PPORT_CONFIGURATION_INFORMATION |
| struct | PSCSI_SUPPORTED_CONTROL_TYPE_LIST |
| struct | PSCSI_REQUEST_BLOCK |
| struct | PSCSI_WMI_REQUEST_BLOCK |
| struct | PSCSI_POWER_REQUEST_BLOCK |
| struct | PSTOR_DEVICE_CAPABILITIES |
| struct | PSCSI_PNP_REQUEST_BLOCK |
| struct | PHW_INITIALIZATION_DATA |
Defines |
| #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_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_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_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_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_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 | SCSIPORTAPI DECLSPEC_IMPORT |
| #define | ScsiPortConvertPhysicalAddressToUlong(Address) ((Address).LowPart) |
| #define | ScsiPortConvertPhysicalAddressToULongPtr(Address) ((ULONG_PTR)((Address).QuadPart)) |
Typedefs |
| typedef PHYSICAL_ADDRESS | SCSI_PHYSICAL_ADDRESS |
| typedef PHYSICAL_ADDRESS * | PSCSI_PHYSICAL_ADDRESS |
typedef enum
_SCSI_ADAPTER_CONTROL_TYPE * | PSCSI_ADAPTER_CONTROL_TYPE |
typedef enum
_SCSI_ADAPTER_CONTROL_STATUS * | PSCSI_ADAPTER_CONTROL_STATUS |
typedef enum
_STOR_DEVICE_POWER_STATE * | PSTOR_DEVICE_POWER_STATE |
| typedef enum _STOR_POWER_ACTION * | PSTOR_POWER_ACTION |
| typedef enum _STOR_PNP_ACTION * | PSTOR_PNP_ACTION |
| typedef BOOLEAN(NTAPI * | PHW_INITIALIZE )(IN PVOID DeviceExtension) |
| typedef BOOLEAN(NTAPI * | PHW_STARTIO )(IN PVOID DeviceExtension, IN PSCSI_REQUEST_BLOCK Srb) |
| typedef BOOLEAN(NTAPI * | PHW_INTERRUPT )(IN PVOID DeviceExtension) |
| typedef VOID(NTAPI * | PHW_TIMER )(IN PVOID DeviceExtension) |
| typedef VOID(NTAPI * | PHW_DMA_STARTED )(IN PVOID DeviceExtension) |
| typedef ULONG(NTAPI * | PHW_FIND_ADAPTER )(IN PVOID DeviceExtension, IN PVOID HwContext, IN PVOID BusInformation, IN PCHAR ArgumentString, IN OUT PPORT_CONFIGURATION_INFORMATION ConfigInfo, OUT PBOOLEAN Again) |
| typedef BOOLEAN(NTAPI * | PHW_RESET_BUS )(IN PVOID DeviceExtension, IN ULONG PathId) |
| typedef BOOLEAN(NTAPI * | PHW_ADAPTER_STATE )(IN PVOID DeviceExtension, IN PVOID Context, IN BOOLEAN SaveState) |
typedef
SCSI_ADAPTER_CONTROL_STATUS(NTAPI * | PHW_ADAPTER_CONTROL )(IN PVOID DeviceExtension, IN SCSI_ADAPTER_CONTROL_TYPE ControlType, IN PVOID Parameters) |
typedef enum
_SCSI_NOTIFICATION_TYPE * | PSCSI_NOTIFICATION_TYPE |
Enumerations |
| enum | SCSI_ADAPTER_CONTROL_TYPE {
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
} |
| enum | STOR_DEVICE_POWER_STATE {
StorPowerDeviceUnspecified = 0,
StorPowerDeviceD0,
StorPowerDeviceD1,
StorPowerDeviceD2,
StorPowerDeviceD3,
StorPowerDeviceMaximum
} |
| enum | STOR_POWER_ACTION {
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
} |
| 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
} |
Functions |
| SCSIPORTAPI VOID NTAPI | ScsiPortCompleteRequest (IN PVOID HwDeviceExtension, IN UCHAR PathId, IN UCHAR TargetId, IN UCHAR Lun, IN UCHAR SrbStatus) |
| SCSIPORTAPI ULONG NTAPI | ScsiPortConvertPhysicalAddressToUlong (IN SCSI_PHYSICAL_ADDRESS Address) |
SCSIPORTAPI
SCSI_PHYSICAL_ADDRESS NTAPI | ScsiPortConvertUlongToPhysicalAddress (IN ULONG_PTR UlongAddress) |
| SCSIPORTAPI VOID NTAPI | ScsiPortFlushDma (IN PVOID DeviceExtension) |
| SCSIPORTAPI VOID NTAPI | ScsiPortFreeDeviceBase (IN PVOID HwDeviceExtension, IN PVOID MappedAddress) |
| SCSIPORTAPI ULONG NTAPI | ScsiPortGetBusData (IN PVOID DeviceExtension, IN ULONG BusDataType, IN ULONG SystemIoBusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Length) |
| SCSIPORTAPI PVOID NTAPI | ScsiPortGetDeviceBase (IN PVOID HwDeviceExtension, IN INTERFACE_TYPE BusType, IN ULONG SystemIoBusNumber, IN SCSI_PHYSICAL_ADDRESS IoAddress, IN ULONG NumberOfBytes, IN BOOLEAN InIoSpace) |
| SCSIPORTAPI PVOID NTAPI | ScsiPortGetLogicalUnit (IN PVOID HwDeviceExtension, IN UCHAR PathId, IN UCHAR TargetId, IN UCHAR Lun) |
SCSIPORTAPI
SCSI_PHYSICAL_ADDRESS NTAPI | ScsiPortGetPhysicalAddress (IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK Srb OPTIONAL, IN PVOID VirtualAddress, OUT ULONG *Length) |
SCSIPORTAPI
PSCSI_REQUEST_BLOCK NTAPI | ScsiPortGetSrb (IN PVOID DeviceExtension, IN UCHAR PathId, IN UCHAR TargetId, IN UCHAR Lun, IN LONG QueueTag) |
| SCSIPORTAPI PVOID NTAPI | ScsiPortGetUncachedExtension (IN PVOID HwDeviceExtension, IN PPORT_CONFIGURATION_INFORMATION ConfigInfo, IN ULONG NumberOfBytes) |
| SCSIPORTAPI PVOID NTAPI | ScsiPortGetVirtualAddress (IN PVOID HwDeviceExtension, IN SCSI_PHYSICAL_ADDRESS PhysicalAddress) |
| SCSIPORTAPI ULONG NTAPI | ScsiPortInitialize (IN PVOID Argument1, IN PVOID Argument2, IN struct _HW_INITIALIZATION_DATA *HwInitializationData, IN PVOID HwContext OPTIONAL) |
| SCSIPORTAPI VOID NTAPI | ScsiPortIoMapTransfer (IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK Srb, IN PVOID LogicalAddress, IN ULONG Length) |
| SCSIPORTAPI VOID NTAPI | ScsiPortLogError (IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK Srb OPTIONAL, IN UCHAR PathId, IN UCHAR TargetId, IN UCHAR Lun, IN ULONG ErrorCode, IN ULONG UniqueId) |
| SCSIPORTAPI VOID __cdecl | ScsiPortNotification (IN SCSI_NOTIFICATION_TYPE NotificationType, IN PVOID HwDeviceExtension, IN...) |
| SCSIPORTAPI VOID NTAPI | ScsiPortQuerySystemTime (OUT PLARGE_INTEGER CurrentTime) |
| SCSIPORTAPI ULONG NTAPI | ScsiPortSetBusDataByOffset (IN PVOID DeviceExtension, IN ULONG BusDataType, IN ULONG SystemIoBusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length) |
| SCSIPORTAPI VOID NTAPI | ScsiPortStallExecution (IN ULONG Delay) |
| SCSIPORTAPI BOOLEAN NTAPI | ScsiPortValidateRange (IN PVOID HwDeviceExtension, IN INTERFACE_TYPE BusType, IN ULONG SystemIoBusNumber, IN SCSI_PHYSICAL_ADDRESS IoAddress, IN ULONG NumberOfBytes, IN BOOLEAN InIoSpace) |
| SCSIPORTAPI VOID __cdecl | ScsiDebugPrint (IN ULONG DebugPrintLevel, IN PCCHAR DebugMessage, IN...) |
| SCSIPORTAPI UCHAR NTAPI | ScsiPortReadPortUchar (IN PUCHAR Port) |
| SCSIPORTAPI ULONG NTAPI | ScsiPortReadPortUlong (IN PULONG Port) |
| SCSIPORTAPI USHORT NTAPI | ScsiPortReadPortUshort (IN PUSHORT Port) |
| SCSIPORTAPI VOID NTAPI | ScsiPortReadPortBufferUchar (IN PUCHAR Port, IN PUCHAR Buffer, IN ULONG Count) |
| SCSIPORTAPI VOID NTAPI | ScsiPortReadPortBufferUlong (IN PULONG Port, IN PULONG Buffer, IN ULONG Count) |
| SCSIPORTAPI VOID NTAPI | ScsiPortReadPortBufferUshort (IN PUSHORT Port, IN PUSHORT Buffer, IN ULONG Count) |
| SCSIPORTAPI UCHAR NTAPI | ScsiPortReadRegisterUchar (IN PUCHAR Register) |
| SCSIPORTAPI ULONG NTAPI | ScsiPortReadRegisterUlong (IN PULONG Register) |
| SCSIPORTAPI USHORT NTAPI | ScsiPortReadRegisterUshort (IN PUSHORT Register) |
| SCSIPORTAPI VOID NTAPI | ScsiPortReadRegisterBufferUchar (IN PUCHAR Register, IN PUCHAR Buffer, IN ULONG Count) |
| SCSIPORTAPI VOID NTAPI | ScsiPortReadRegisterBufferUlong (IN PULONG Register, IN PULONG Buffer, IN ULONG Count) |
| SCSIPORTAPI VOID NTAPI | ScsiPortReadRegisterBufferUshort (IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count) |
| SCSIPORTAPI VOID NTAPI | ScsiPortWritePortUchar (IN PUCHAR Port, IN UCHAR Value) |
| SCSIPORTAPI VOID NTAPI | ScsiPortWritePortUlong (IN PULONG Port, IN ULONG Value) |
| SCSIPORTAPI VOID NTAPI | ScsiPortWritePortUshort (IN PUSHORT Port, IN USHORT Value) |
| SCSIPORTAPI VOID NTAPI | ScsiPortWritePortBufferUchar (IN PUCHAR Port, IN PUCHAR Buffer, IN ULONG Count) |
| SCSIPORTAPI VOID NTAPI | ScsiPortWritePortBufferUlong (IN PULONG Port, IN PULONG Buffer, IN ULONG Count) |
| SCSIPORTAPI VOID NTAPI | ScsiPortWritePortBufferUshort (IN PUSHORT Port, IN PUSHORT Buffer, IN ULONG Count) |
| SCSIPORTAPI VOID NTAPI | ScsiPortWriteRegisterUchar (IN PUCHAR Register, IN UCHAR Value) |
| SCSIPORTAPI VOID NTAPI | ScsiPortWriteRegisterUlong (IN PULONG Register, IN ULONG Value) |
| SCSIPORTAPI VOID NTAPI | ScsiPortWriteRegisterUshort (IN PUSHORT Register, IN USHORT Value) |
| SCSIPORTAPI VOID NTAPI | ScsiPortWriteRegisterBufferUchar (IN PUCHAR Register, IN PUCHAR Buffer, IN ULONG Count) |
| SCSIPORTAPI VOID NTAPI | ScsiPortWriteRegisterBufferUlong (IN PULONG Register, IN PULONG Buffer, IN ULONG Count) |
| SCSIPORTAPI VOID NTAPI | ScsiPortWriteRegisterBufferUshort (IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count) |
| SCSIPORTAPI VOID NTAPI | ScsiPortMoveMemory (IN PVOID WriteBuffer, IN PVOID ReadBuffer, IN ULONG Length) |