30 #define SCSI_MAXIMUM_LOGICAL_UNITS 8 31 #define SCSI_MAXIMUM_TARGETS_PER_BUS 128 32 #define SCSI_MAXIMUM_LUNS_PER_TARGET 255 33 #define SCSI_MAXIMUM_BUSES 8 34 #define SCSI_MINIMUM_PHYSICAL_BREAKS 16 35 #define SCSI_MAXIMUM_PHYSICAL_BREAKS 255 36 #define SCSI_MAXIMUM_TARGETS 8 39 #define SCSI_DMA64_MINIPORT_SUPPORTED 0x01 40 #define SCSI_DMA64_SYSTEM_SUPPORTED 0x80 41 #if (NTDDI_VERSION > NTDDI_WS03SP1) 42 #define SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED 0x02 45 #define SP_UNINITIALIZED_VALUE ((ULONG) ~0) 46 #define SP_UNTAGGED ((UCHAR) ~0) 49 #define SRBEV_BUS_RESET 0x0001 50 #define SRBEV_SCSI_ASYNC_NOTIFICATION 0x0002 52 #define MAXIMUM_CDB_SIZE 12 55 #define DebugPrint(x) ScsiDebugPrint x 60 #define SCSI_COMBINE_BUS_TARGET(Bus, Target)( \ 61 ((((UCHAR) (Target)) & ~(0x20 - 1)) << 8) | \ 62 (((UCHAR) (Bus)) << 5) | \ 63 (((UCHAR) (Target)) & (0x20 - 1))) 65 #define SCSI_DECODE_BUS_TARGET(Value, Bus, Target)( \ 66 Bus = (UCHAR) ((Value) >> 5), \ 67 Target = (UCHAR) ((((Value) >> 8) & ~(0x20 - 1)) | ((Value) & (0x20 - 1)))) 70 #define SRB_FUNCTION_EXECUTE_SCSI 0x00 71 #define SRB_FUNCTION_CLAIM_DEVICE 0x01 72 #define SRB_FUNCTION_IO_CONTROL 0x02 73 #define SRB_FUNCTION_RECEIVE_EVENT 0x03 74 #define SRB_FUNCTION_RELEASE_QUEUE 0x04 75 #define SRB_FUNCTION_ATTACH_DEVICE 0x05 76 #define SRB_FUNCTION_RELEASE_DEVICE 0x06 77 #define SRB_FUNCTION_SHUTDOWN 0x07 78 #define SRB_FUNCTION_FLUSH 0x08 79 #define SRB_FUNCTION_ABORT_COMMAND 0x10 80 #define SRB_FUNCTION_RELEASE_RECOVERY 0x11 81 #define SRB_FUNCTION_RESET_BUS 0x12 82 #define SRB_FUNCTION_RESET_DEVICE 0x13 83 #define SRB_FUNCTION_TERMINATE_IO 0x14 84 #define SRB_FUNCTION_FLUSH_QUEUE 0x15 85 #define SRB_FUNCTION_REMOVE_DEVICE 0x16 86 #define SRB_FUNCTION_WMI 0x17 87 #define SRB_FUNCTION_LOCK_QUEUE 0x18 88 #define SRB_FUNCTION_UNLOCK_QUEUE 0x19 89 #define SRB_FUNCTION_RESET_LOGICAL_UNIT 0x20 90 #define SRB_FUNCTION_SET_LINK_TIMEOUT 0x21 91 #define SRB_FUNCTION_LINK_TIMEOUT_OCCURRED 0x22 92 #define SRB_FUNCTION_LINK_TIMEOUT_COMPLETE 0x23 93 #define SRB_FUNCTION_POWER 0x24 94 #define SRB_FUNCTION_PNP 0x25 95 #define SRB_FUNCTION_DUMP_POINTERS 0x26 98 #define SRB_STATUS_PENDING 0x00 99 #define SRB_STATUS_SUCCESS 0x01 100 #define SRB_STATUS_ABORTED 0x02 101 #define SRB_STATUS_ABORT_FAILED 0x03 102 #define SRB_STATUS_ERROR 0x04 103 #define SRB_STATUS_BUSY 0x05 104 #define SRB_STATUS_INVALID_REQUEST 0x06 105 #define SRB_STATUS_INVALID_PATH_ID 0x07 106 #define SRB_STATUS_NO_DEVICE 0x08 107 #define SRB_STATUS_TIMEOUT 0x09 108 #define SRB_STATUS_SELECTION_TIMEOUT 0x0A 109 #define SRB_STATUS_COMMAND_TIMEOUT 0x0B 110 #define SRB_STATUS_MESSAGE_REJECTED 0x0D 111 #define SRB_STATUS_BUS_RESET 0x0E 112 #define SRB_STATUS_PARITY_ERROR 0x0F 113 #define SRB_STATUS_REQUEST_SENSE_FAILED 0x10 114 #define SRB_STATUS_NO_HBA 0x11 115 #define SRB_STATUS_DATA_OVERRUN 0x12 116 #define SRB_STATUS_UNEXPECTED_BUS_FREE 0x13 117 #define SRB_STATUS_PHASE_SEQUENCE_FAILURE 0x14 118 #define SRB_STATUS_BAD_SRB_BLOCK_LENGTH 0x15 119 #define SRB_STATUS_REQUEST_FLUSHED 0x16 120 #define SRB_STATUS_INVALID_LUN 0x20 121 #define SRB_STATUS_INVALID_TARGET_ID 0x21 122 #define SRB_STATUS_BAD_FUNCTION 0x22 123 #define SRB_STATUS_ERROR_RECOVERY 0x23 124 #define SRB_STATUS_NOT_POWERED 0x24 125 #define SRB_STATUS_LINK_DOWN 0x25 126 #define SRB_STATUS_INTERNAL_ERROR 0x30 128 #define SRB_STATUS_QUEUE_FROZEN 0x40 129 #define SRB_STATUS_AUTOSENSE_VALID 0x80 131 #define SRB_STATUS(Status) \ 132 (Status & ~(SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_QUEUE_FROZEN)) 135 #define SRB_FLAGS_QUEUE_ACTION_ENABLE 0x00000002 136 #define SRB_FLAGS_DISABLE_DISCONNECT 0x00000004 137 #define SRB_FLAGS_DISABLE_SYNCH_TRANSFER 0x00000008 138 #define SRB_FLAGS_BYPASS_FROZEN_QUEUE 0x00000010 139 #define SRB_FLAGS_DISABLE_AUTOSENSE 0x00000020 140 #define SRB_FLAGS_DATA_IN 0x00000040 141 #define SRB_FLAGS_DATA_OUT 0x00000080 142 #define SRB_FLAGS_NO_DATA_TRANSFER 0x00000000 143 #define SRB_FLAGS_UNSPECIFIED_DIRECTION (SRB_FLAGS_DATA_IN | SRB_FLAGS_DATA_OUT) 144 #define SRB_FLAGS_NO_QUEUE_FREEZE 0x00000100 145 #define SRB_FLAGS_ADAPTER_CACHE_ENABLE 0x00000200 146 #define SRB_FLAGS_FREE_SENSE_BUFFER 0x00000400 147 #define SRB_FLAGS_IS_ACTIVE 0x00010000 148 #define SRB_FLAGS_ALLOCATED_FROM_ZONE 0x00020000 149 #define SRB_FLAGS_SGLIST_FROM_POOL 0x00040000 150 #define SRB_FLAGS_BYPASS_LOCKED_QUEUE 0x00080000 151 #define SRB_FLAGS_NO_KEEP_AWAKE 0x00100000 152 #define SRB_FLAGS_PORT_DRIVER_ALLOCSENSE 0x00200000 153 #define SRB_FLAGS_PORT_DRIVER_SENSEHASPORT 0x00400000 154 #define SRB_FLAGS_DONT_START_NEXT_PACKET 0x00800000 155 #define SRB_FLAGS_PORT_DRIVER_RESERVED 0x0F000000 156 #define SRB_FLAGS_CLASS_DRIVER_RESERVED 0xF0000000 159 #define SCSI_PORT_SIGNATURE 0x54524f50 162 #define SRB_SIMPLE_TAG_REQUEST 0x20 163 #define SRB_HEAD_OF_QUEUE_TAG_REQUEST 0x21 164 #define SRB_ORDERED_QUEUE_TAG_REQUEST 0x22 166 #define SRB_WMI_FLAGS_ADAPTER_REQUEST 0x0001 167 #define SRB_POWER_FLAGS_ADAPTER_REQUEST 0x0001 168 #define SRB_PNP_FLAGS_ADAPTER_REQUEST 0x0001 170 #define SP_BUS_PARITY_ERROR 0x0001 171 #define SP_UNEXPECTED_DISCONNECT 0x0002 172 #define SP_INVALID_RESELECTION 0x0003 173 #define SP_BUS_TIME_OUT 0x0004 174 #define SP_PROTOCOL_ERROR 0x0005 175 #define SP_INTERNAL_ADAPTER_ERROR 0x0006 176 #define SP_REQUEST_TIMEOUT 0x0007 177 #define SP_IRQ_NOT_RESPONDING 0x0008 178 #define SP_BAD_FW_WARNING 0x0009 179 #define SP_BAD_FW_ERROR 0x000a 180 #define SP_LOST_WMI_MINIPORT_REQUEST 0x000b 182 #define SP_VER_TRACE_SUPPORT 0x0010 184 #define SP_RETURN_NOT_FOUND 0 185 #define SP_RETURN_FOUND 1 186 #define SP_RETURN_ERROR 2 187 #define SP_RETURN_BAD_CONFIG 3 251 #define CONFIG_INFO_VERSION_2 sizeof(PORT_CONFIGURATION_INFORMATION) 307 #define SCSI_REQUEST_BLOCK_SIZE sizeof(SCSI_REQUEST_BLOCK) 329 #if (NTDDI_VERSION >= NTDDI_WS03SP1) && defined(_WIN64) 541 #define SCSIPORTAPI DECLSPEC_IMPORT 561 #define ScsiPortConvertPhysicalAddressToUlong(Address) ((Address).LowPart) 562 #define ScsiPortConvertPhysicalAddressToULongPtr(Address) ((ULONG_PTR)((Address).QuadPart)) 737 ULONG DebugPrintLevel,
741 #if defined(_M_AMD64) 743 #define ScsiPortReadPortUchar READ_PORT_UCHAR 744 #define ScsiPortReadPortUshort READ_PORT_USHORT 745 #define ScsiPortReadPortUlong READ_PORT_ULONG 747 #define ScsiPortReadPortBufferUchar READ_PORT_BUFFER_UCHAR 748 #define ScsiPortReadPortBufferUshort READ_PORT_BUFFER_USHORT 749 #define ScsiPortReadPortBufferUlong READ_PORT_BUFFER_ULONG 751 #define ScsiPortReadRegisterUchar READ_REGISTER_UCHAR 752 #define ScsiPortReadRegisterUshort READ_REGISTER_USHORT 753 #define ScsiPortReadRegisterUlong READ_REGISTER_ULONG 755 #define ScsiPortReadRegisterBufferUchar READ_REGISTER_BUFFER_UCHAR 756 #define ScsiPortReadRegisterBufferUshort READ_REGISTER_BUFFER_USHORT 757 #define ScsiPortReadRegisterBufferUlong READ_REGISTER_BUFFER_ULONG 759 #define ScsiPortWritePortUchar WRITE_PORT_UCHAR 760 #define ScsiPortWritePortUshort WRITE_PORT_USHORT 761 #define ScsiPortWritePortUlong WRITE_PORT_ULONG 763 #define ScsiPortWritePortBufferUchar WRITE_PORT_BUFFER_UCHAR 764 #define ScsiPortWritePortBufferUshort WRITE_PORT_BUFFER_USHORT 765 #define ScsiPortWritePortBufferUlong WRITE_PORT_BUFFER_ULONG 767 #define ScsiPortWriteRegisterUchar WRITE_REGISTER_UCHAR 768 #define ScsiPortWriteRegisterUshort WRITE_REGISTER_USHORT 769 #define ScsiPortWriteRegisterUlong WRITE_REGISTER_ULONG 771 #define ScsiPortWriteRegisterBufferUchar WRITE_REGISTER_BUFFER_UCHAR 772 #define ScsiPortWriteRegisterBufferUshort WRITE_REGISTER_BUFFER_USHORT 773 #define ScsiPortWriteRegisterBufferUlong WRITE_REGISTER_BUFFER_ULONG 775 #define ScsiPortMoveMemory memmove SCSIPORT_API UCHAR NTAPI ScsiPortReadRegisterUchar(IN PUCHAR Register)
struct _SCSI_POWER_REQUEST_BLOCK SCSI_POWER_REQUEST_BLOCK
_In_opt_ ULONG _Out_ PULONG Value
PHW_ADAPTER_STATE HwAdapterState
SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterBufferUshort(IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count)
_Must_inspect_result_ _In_ PVOID Argument2
SCSIPORT_API 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)
SCSIPORT_API VOID NTAPI ScsiPortWritePortUlong(IN PULONG Port, IN ULONG Value)
#define _Must_inspect_result_
struct _ACCESS_RANGE ACCESS_RANGE
struct _STOR_DEVICE_CAPABILITIES * PSTOR_DEVICE_CAPABILITIES
struct _SCSI_WMI_REQUEST_BLOCK SCSI_WMI_REQUEST_BLOCK
_In_ NDIS_ERROR_CODE ErrorCode
enum _INTERFACE_TYPE INTERFACE_TYPE
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR _In_ UCHAR _In_ UCHAR Lun
STOR_PNP_ACTION PnPAction
_IRQL_requires_same_ _In_opt_ PVOID Argument1
SCSIPORT_API ULONG NTAPI ScsiPortInitialize(IN PVOID Argument1, IN PVOID Argument2, IN struct _HW_INITIALIZATION_DATA *HwInitializationData, IN PVOID HwContext)
enum _SCSI_ADAPTER_CONTROL_TYPE * PSCSI_ADAPTER_CONTROL_TYPE
enum _SCSI_ADAPTER_CONTROL_STATUS SCSI_ADAPTER_CONTROL_STATUS
enum _SCSI_NOTIFICATION_TYPE SCSI_NOTIFICATION_TYPE
SCSIPORT_API PVOID NTAPI ScsiPortGetVirtualAddress(IN PVOID HwDeviceExtension, IN SCSI_PHYSICAL_ADDRESS PhysicalAddress)
struct _SCSI_REQUEST_BLOCK * PSCSI_REQUEST_BLOCK
SCSIPORT_API ULONG NTAPI ScsiPortGetBusData(IN PVOID DeviceExtension, IN ULONG BusDataType, IN ULONG SystemIoBusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Length)
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR PathId
BOOLEAN(NTAPI * PHW_RESET_BUS)(IN PVOID DeviceExtension, IN ULONG PathId)
SCSIPORT_API PVOID NTAPI ScsiPortGetLogicalUnit(IN PVOID HwDeviceExtension, IN UCHAR PathId, IN UCHAR TargetId, IN UCHAR Lun)
enum _SCSI_NOTIFICATION_TYPE * PSCSI_NOTIFICATION_TYPE
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR _In_ UCHAR TargetId
_ANONYMOUS_UNION union _HW_INITIALIZATION_DATA::@2140 DUMMYUNIONNAME
SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterUchar(IN PUCHAR Register, IN UCHAR Value)
SCSIPORT_API VOID NTAPI ScsiPortWritePortBufferUchar(IN PUCHAR Port, IN PUCHAR Buffer, IN ULONG Count)
ULONG HwInitializationDataSize
#define ReadBuffer(BaseIoAddress, Buffer, Count)
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA _In_ PVOID HwContext
struct _HW_INITIALIZATION_DATA HW_INITIALIZATION_DATA
enum _STOR_PNP_ACTION STOR_PNP_ACTION
ULONG DeviceExtensionSize
enum _DMA_WIDTH DMA_WIDTH
SCSIPORT_API VOID NTAPI ScsiPortReadRegisterBufferUshort(IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count)
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
SCSIPORT_API SCSI_PHYSICAL_ADDRESS NTAPI ScsiPortGetPhysicalAddress(IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK Srb, IN PVOID VirtualAddress, OUT ULONG *Length)
PHW_DMA_STARTED HwDmaStarted
BOOLEAN MultipleRequestPerLu
PHW_FIND_ADAPTER HwFindAdapter
SCSIPORT_API VOID NTAPI ScsiPortMoveMemory(IN PVOID WriteBuffer, IN PVOID ReadBuffer, IN ULONG Length)
SCSIPORT_API VOID NTAPI ScsiPortWritePortUshort(IN PUSHORT Port, IN USHORT Value)
ULONG SpecificLuExtensionSize
struct _SCSI_REQUEST_BLOCK * NextSrb
SCSIPORT_API VOID NTAPI ScsiPortReadPortBufferUlong(IN PULONG Port, IN PULONG Buffer, IN ULONG Count)
SCSIPORT_API PSCSI_REQUEST_BLOCK NTAPI ScsiPortGetSrb(IN PVOID DeviceExtension, IN UCHAR PathId, IN UCHAR TargetId, IN UCHAR Lun, IN LONG QueueTag)
SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterUlong(IN PULONG Register, IN ULONG Value)
_Field_size_bytes_(DataTransferLength) PVOID DataBuffer
BOOLEAN(NTAPI * PHW_ADAPTER_STATE)(IN PVOID DeviceExtension, IN PVOID Context, IN BOOLEAN SaveState)
SCSIPORT_API ULONG NTAPI ScsiPortReadPortUlong(IN PULONG Port)
OUT BOOLEAN SupportedTypeList[0]
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)
struct _SCSI_REQUEST_BLOCK * NextSrb
enum _STOR_DEVICE_POWER_STATE STOR_DEVICE_POWER_STATE
struct _SCSI_PNP_REQUEST_BLOCK * PSCSI_PNP_REQUEST_BLOCK
SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterBufferUlong(IN PULONG Register, IN PULONG Buffer, IN ULONG Count)
SCSIPORT_API SCSI_PHYSICAL_ADDRESS NTAPI ScsiPortConvertUlongToPhysicalAddress(ULONG UlongAddress)
BOOLEAN NeedPhysicalAddresses
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
_In_ ULONG _In_ ULONG Offset
BOOLEAN(NTAPI * PHW_INITIALIZE)(IN PVOID DeviceExtension)
PHW_INTERRUPT HwInterrupt
SCSIPORT_API ULONG NTAPI ScsiPortReadRegisterUlong(IN PULONG Register)
enum _STOR_DEVICE_POWER_STATE * PSTOR_DEVICE_POWER_STATE
SCSIPORT_API VOID NTAPI ScsiPortWritePortUchar(IN PUCHAR Port, IN UCHAR Value)
enum _KINTERRUPT_MODE KINTERRUPT_MODE
SCSIPORT_API VOID NTAPI ScsiPortReadPortBufferUshort(IN PUSHORT Port, IN PUSHORT Buffer, IN ULONG Count)
struct _SCSI_PNP_REQUEST_BLOCK SCSI_PNP_REQUEST_BLOCK
_Reserved_ PVOID Reserved
SCSIPORT_API USHORT NTAPI ScsiPortReadPortUshort(IN PUSHORT Port)
enum _STOR_POWER_ACTION STOR_POWER_ACTION
SCSIPORT_API VOID NTAPI ScsiPortReadRegisterBufferUchar(IN PUCHAR Register, IN PUCHAR Buffer, IN ULONG Count)
SCSIPORT_API VOID NTAPI ScsiPortCompleteRequest(IN PVOID HwDeviceExtension, IN UCHAR PathId, IN UCHAR TargetId, IN UCHAR Lun, IN UCHAR SrbStatus)
struct _SCSI_WMI_REQUEST_BLOCK * PSCSI_WMI_REQUEST_BLOCK
struct _SCSI_SUPPORTED_CONTROL_TYPE_LIST * PSCSI_SUPPORTED_CONTROL_TYPE_LIST
SCSI_ADAPTER_CONTROL_STATUS(NTAPI * PHW_ADAPTER_CONTROL)(IN PVOID DeviceExtension, IN SCSI_ADAPTER_CONTROL_TYPE ControlType, IN PVOID Parameters)
struct _ACCESS_RANGE * PACCESS_RANGE
BOOLEAN(NTAPI * PHW_STARTIO)(IN PVOID DeviceExtension, IN PSCSI_REQUEST_BLOCK Srb)
_SCSI_ADAPTER_CONTROL_TYPE
_In_ ULONG _In_ ULONG _In_ ULONG Length
struct _SCSI_REQUEST_BLOCK SCSI_REQUEST_BLOCK
SCSI_PHYSICAL_ADDRESS RangeStart
SCSIPORT_API ULONG NTAPI ScsiPortSetBusDataByOffset(IN PVOID DeviceExtension, IN ULONG BusDataType, IN ULONG SystemIoBusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG _In_ ULONG SlotNumber
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
SCSIPORT_API VOID NTAPI ScsiPortReadPortBufferUchar(IN PUCHAR Port, IN PUCHAR Buffer, IN ULONG Count)
struct _PORT_CONFIGURATION_INFORMATION PORT_CONFIGURATION_INFORMATION
_In_ PPCI_DEVICE_PRESENCE_PARAMETERS Parameters
PHYSICAL_ADDRESS SCSI_PHYSICAL_ADDRESS
_In_ ULONG _In_ BOOLEAN _Must_inspect_result_ PVOID * VirtualAddress
struct _HW_INITIALIZATION_DATA * PHW_INITIALIZATION_DATA
#define _In_reads_bytes_(size)
ULONG NumberOfAccessRanges
STOR_POWER_ACTION PowerAction
enum _DMA_SPEED DMA_SPEED
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)
PHYSICAL_ADDRESS * PSCSI_PHYSICAL_ADDRESS
UCHAR SenseInfoBufferLength
enum _SCSI_ADAPTER_CONTROL_STATUS * PSCSI_ADAPTER_CONTROL_STATUS
PHW_ADAPTER_CONTROL HwAdapterControl
SCSIPORT_API VOID NTAPI ScsiPortWritePortBufferUshort(IN PUSHORT Port, IN PUSHORT Buffer, IN ULONG Count)
_Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) SCSIPORTAPI ULONG NTAPI ScsiPortInitialize(_In_ PVOID Argument1
SCSIPORT_API VOID NTAPI ScsiPortFreeDeviceBase(IN PVOID HwDeviceExtension, IN PVOID MappedAddress)
SCSIPORT_API VOID __cdecl ScsiDebugPrint(ULONG DebugPrintLevel, PCCHAR DebugMessage,...)
BOOLEAN(NTAPI * PHW_INTERRUPT)(IN PVOID DeviceExtension)
#define ScsiPortConvertPhysicalAddressToUlong(Address)
enum _STOR_PNP_ACTION * PSTOR_PNP_ACTION
SCSIPORT_API VOID NTAPI ScsiPortWritePortBufferUlong(IN PULONG Port, IN PULONG Buffer, IN ULONG Count)
PHW_INITIALIZE HwInitialize
struct _SCSI_REQUEST_BLOCK * NextSrb
enum _SCSI_ADAPTER_CONTROL_TYPE SCSI_ADAPTER_CONTROL_TYPE
_SCSI_ADAPTER_CONTROL_STATUS
SCSIPORT_API UCHAR NTAPI ScsiPortReadPortUchar(IN PUCHAR Port)
VOID(NTAPI * PHW_TIMER)(IN PVOID DeviceExtension)
INTERFACE_TYPE AdapterInterfaceType
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
struct tagContext Context
struct _STOR_DEVICE_CAPABILITIES STOR_DEVICE_CAPABILITIES
SCSIPORT_API VOID __cdecl ScsiPortNotification(IN SCSI_NOTIFICATION_TYPE NotificationType, IN PVOID HwDeviceExtension,...)
struct _SCSI_POWER_REQUEST_BLOCK * PSCSI_POWER_REQUEST_BLOCK
SCSIPORT_API VOID NTAPI ScsiPortFlushDma(IN PVOID DeviceExtension)
SCSIPORT_API VOID NTAPI ScsiPortReadRegisterBufferUlong(IN PULONG Register, IN PULONG Buffer, IN ULONG Count)
struct _SCSI_SUPPORTED_CONTROL_TYPE_LIST SCSI_SUPPORTED_CONTROL_TYPE_LIST
IN PSCSI_REQUEST_BLOCK Srb
SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterUshort(IN PUSHORT Register, IN USHORT Value)
SCSIPORT_API PVOID NTAPI ScsiPortGetUncachedExtension(IN PVOID HwDeviceExtension, IN PPORT_CONFIGURATION_INFORMATION ConfigInfo, IN ULONG NumberOfBytes)
enum _STOR_POWER_ACTION * PSTOR_POWER_ACTION
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)
SCSIPORT_API VOID NTAPI ScsiPortStallExecution(IN ULONG Delay)
STOR_DEVICE_POWER_STATE DevicePowerState
#define WriteBuffer(BaseIoAddress, Buffer, Count)
SCSIPORT_API VOID NTAPI ScsiPortWriteRegisterBufferUchar(IN PUCHAR Register, IN PUCHAR Buffer, IN ULONG Count)
VOID(NTAPI * PHW_DMA_STARTED)(IN PVOID DeviceExtension)
SCSIPORT_API USHORT NTAPI ScsiPortReadRegisterUshort(IN PUSHORT Register)
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA * HwInitializationData
SCSIPORTAPI VOID NTAPI ScsiPortQuerySystemTime(_Out_ PLARGE_INTEGER CurrentTime)
SCSIPORT_API VOID NTAPI ScsiPortIoMapTransfer(IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK Srb, IN PVOID LogicalAddress, IN ULONG Length)
_ANONYMOUS_UNION union _SCSI_REQUEST_BLOCK::@2139 DUMMYUNIONNAME
struct _PORT_CONFIGURATION_INFORMATION * PPORT_CONFIGURATION_INFORMATION