ReactOS 0.4.17-dev-1218-gfae4549
storport.h File Reference
#include <pshpack1.h>
#include <poppack.h>
Include dependency graph for storport.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _SCSI_REQUEST_BLOCK
 
struct  _SCSI_WMI_REQUEST_BLOCK
 
struct  _SCSI_POWER_REQUEST_BLOCK
 
struct  _STOR_DEVICE_CAPABILITIES
 
struct  _SCSI_PNP_REQUEST_BLOCK
 
union  _CDB
 
struct  _CDB::_CDB6GENERIC
 
struct  _CDB::_CDB6READWRITE
 
struct  _CDB::_CDB6INQUIRY
 
struct  _CDB::_CDB6INQUIRY3
 
struct  _CDB::_CDB6VERIFY
 
struct  _CDB::_CDB6FORMAT
 
struct  _CDB::_CDB10
 
struct  _CDB::_CDB12
 
struct  _CDB::_CDB16
 
struct  _CDB::_PAUSE_RESUME
 
struct  _CDB::_READ_TOC
 
struct  _CDB::_READ_DISK_INFORMATION
 
struct  _CDB::_READ_TRACK_INFORMATION
 
struct  _CDB::_RESERVE_TRACK_RZONE
 
struct  _CDB::_SEND_OPC_INFORMATION
 
struct  _CDB::_REPAIR_TRACK
 
struct  _CDB::_CLOSE_TRACK
 
struct  _CDB::_READ_BUFFER_CAPACITY
 
struct  _CDB::_SEND_CUE_SHEET
 
struct  _CDB::_READ_HEADER
 
struct  _CDB::_PLAY_AUDIO
 
struct  _CDB::_PLAY_AUDIO_MSF
 
struct  _CDB::_BLANK_MEDIA
 
struct  _CDB::_PLAY_CD
 
struct  _CDB::_SCAN_CD
 
struct  _CDB::_STOP_PLAY_SCAN
 
struct  _CDB::_SUBCHANNEL
 
struct  _CDB::_READ_CD
 
struct  _CDB::_READ_CD_MSF
 
struct  _CDB::_PLXTR_READ_CDDA
 
struct  _CDB::_NEC_READ_CDDA
 
struct  _CDB::_MODE_SENSE
 
struct  _CDB::_MODE_SENSE10
 
struct  _CDB::_MODE_SELECT
 
struct  _CDB::_MODE_SELECT10
 
struct  _CDB::_LOCATE
 
struct  _CDB::_LOGSENSE
 
struct  _CDB::_LOGSELECT
 
struct  _CDB::_PRINT
 
struct  _CDB::_SEEK
 
struct  _CDB::_ERASE
 
struct  _CDB::_START_STOP
 
struct  _CDB::_MEDIA_REMOVAL
 
struct  _CDB::_SEEK_BLOCK
 
struct  _CDB::_REQUEST_BLOCK_ADDRESS
 
struct  _CDB::_PARTITION
 
struct  _CDB::_WRITE_TAPE_MARKS
 
struct  _CDB::_SPACE_TAPE_MARKS
 
struct  _CDB::_READ_POSITION
 
struct  _CDB::_CDB6READWRITETAPE
 
struct  _CDB::_INIT_ELEMENT_STATUS
 
struct  _CDB::_INITIALIZE_ELEMENT_RANGE
 
struct  _CDB::_POSITION_TO_ELEMENT
 
struct  _CDB::_MOVE_MEDIUM
 
struct  _CDB::_EXCHANGE_MEDIUM
 
struct  _CDB::_READ_ELEMENT_STATUS
 
struct  _CDB::_SEND_VOLUME_TAG
 
struct  _CDB::_REQUEST_VOLUME_ELEMENT_ADDRESS
 
struct  _CDB::_LOAD_UNLOAD
 
struct  _CDB::_MECH_STATUS
 
struct  _CDB::_SYNCHRONIZE_CACHE10
 
struct  _CDB::_GET_EVENT_STATUS_NOTIFICATION
 
struct  _CDB::_GET_PERFORMANCE
 
struct  _CDB::_READ_DVD_STRUCTURE
 
struct  _CDB::_SET_STREAMING
 
struct  _CDB::_SEND_DVD_STRUCTURE
 
struct  _CDB::_SEND_KEY
 
struct  _CDB::_REPORT_KEY
 
struct  _CDB::_SET_READ_AHEAD
 
struct  _CDB::_READ_FORMATTED_CAPACITIES
 
struct  _CDB::_REPORT_LUNS
 
struct  _CDB::_PERSISTENT_RESERVE_IN
 
struct  _CDB::_PERSISTENT_RESERVE_OUT
 
struct  _CDB::_GET_CONFIGURATION
 
struct  _CDB::_SET_CD_SPEED
 
struct  _CDB::_READ12
 
struct  _CDB::_WRITE12
 
struct  _CDB::_READ16
 
struct  _CDB::_WRITE16
 
struct  _CDB::_VERIFY16
 
struct  _CDB::_SYNCHRONIZE_CACHE16
 
struct  _CDB::_READ_CAPACITY16
 
union  _EIGHT_BYTE
 
union  _FOUR_BYTE
 
union  _TWO_BYTE
 
struct  _INQUIRYDATA
 
struct  _VPD_MEDIA_SERIAL_NUMBER_PAGE
 
struct  _VPD_SERIAL_NUMBER_PAGE
 
struct  _VPD_IDENTIFICATION_DESCRIPTOR
 
struct  _VPD_IDENTIFICATION_PAGE
 
struct  _VPD_SUPPORTED_PAGES_PAGE
 
struct  _READ_CAPACITY_DATA
 
struct  _READ_CAPACITY_DATA_EX
 
struct  _MODE_PARAMETER_HEADER
 
struct  _MODE_PARAMETER_HEADER10
 
struct  _MODE_PARAMETER_BLOCK
 
struct  _LUN_LIST
 
struct  _SENSE_DATA
 
struct  _ACCESS_RANGE
 
struct  _MEMORY_REGION
 
struct  _PORT_CONFIGURATION_INFORMATION
 
struct  _STOR_SCATTER_GATHER_ELEMENT
 
struct  _STOR_SCATTER_GATHER_LIST
 
struct  _DPC_BUFFER
 
struct  _STOR_DPC
 
struct  _STOR_LOCK_HANDLE
 
struct  _STOR_LOG_EVENT_DETAILS
 
struct  _PERF_CONFIGURATION_DATA
 
struct  _STARTIO_PERFORMANCE_PARAMETERS
 
struct  _MESSAGE_INTERRUPT_INFORMATION
 
struct  _STORPORT_EXTENDED_FUNCTIONS
 
struct  _HW_INITIALIZATION_DATA
 

Macros

#define _NTSTORPORT_
 
#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 STORPORT_API   DECLSPEC_IMPORT
 
#define DIRECT_ACCESS_DEVICE   0x00
 
#define SEQUENTIAL_ACCESS_DEVICE   0x01
 
#define PRINTER_DEVICE   0x02
 
#define PROCESSOR_DEVICE   0x03
 
#define WRITE_ONCE_READ_MULTIPLE_DEVICE   0x04
 
#define READ_ONLY_DIRECT_ACCESS_DEVICE   0x05
 
#define SCANNER_DEVICE   0x06
 
#define OPTICAL_DEVICE   0x07
 
#define MEDIUM_CHANGER   0x08
 
#define COMMUNICATION_DEVICE   0x09
 
#define ARRAY_CONTROLLER_DEVICE   0x0C
 
#define SCSI_ENCLOSURE_DEVICE   0x0D
 
#define REDUCED_BLOCK_DEVICE   0x0E
 
#define OPTICAL_CARD_READER_WRITER_DEVICE   0x0F
 
#define BRIDGE_CONTROLLER_DEVICE   0x10
 
#define OBJECT_BASED_STORAGE_DEVICE   0x11
 
#define LOGICAL_UNIT_NOT_PRESENT_DEVICE   0x7F
 
#define DEVICE_CONNECTED   0x00
 
#define CDB6GENERIC_LENGTH   6
 
#define CDB10GENERIC_LENGTH   10
 
#define CDB12GENERIC_LENGTH   12
 
#define INQUIRYDATABUFFERSIZE   36
 
#define SENSE_BUFFER_SIZE   18
 
#define MAX_SENSE_BUFFER_SIZE   255
 
#define FILE_DEVICE_SCSI   0x0000001b
 
#define IOCTL_SCSI_EXECUTE_IN   ((FILE_DEVICE_SCSI << 16) + 0x0011)
 
#define IOCTL_SCSI_EXECUTE_OUT   ((FILE_DEVICE_SCSI << 16) + 0x0012)
 
#define IOCTL_SCSI_EXECUTE_NONE   ((FILE_DEVICE_SCSI << 16) + 0x0013)
 
#define MODE_PAGE_VENDOR_SPECIFIC   0x00
 
#define MODE_PAGE_ERROR_RECOVERY   0x01
 
#define MODE_PAGE_DISCONNECT   0x02
 
#define MODE_PAGE_FORMAT_DEVICE   0x03
 
#define MODE_PAGE_MRW   0x03
 
#define MODE_PAGE_RIGID_GEOMETRY   0x04
 
#define MODE_PAGE_FLEXIBILE   0x05
 
#define MODE_PAGE_WRITE_PARAMETERS   0x05
 
#define MODE_PAGE_VERIFY_ERROR   0x07
 
#define MODE_PAGE_CACHING   0x08
 
#define MODE_PAGE_PERIPHERAL   0x09
 
#define MODE_PAGE_CONTROL   0x0A
 
#define MODE_PAGE_MEDIUM_TYPES   0x0B
 
#define MODE_PAGE_NOTCH_PARTITION   0x0C
 
#define MODE_PAGE_CD_AUDIO_CONTROL   0x0E
 
#define MODE_PAGE_DATA_COMPRESS   0x0F
 
#define MODE_PAGE_DEVICE_CONFIG   0x10
 
#define MODE_PAGE_XOR_CONTROL   0x10
 
#define MODE_PAGE_MEDIUM_PARTITION   0x11
 
#define MODE_PAGE_ENCLOSURE_SERVICES_MANAGEMENT   0x14
 
#define MODE_PAGE_EXTENDED   0x15
 
#define MODE_PAGE_EXTENDED_DEVICE_SPECIFIC   0x16
 
#define MODE_PAGE_CDVD_FEATURE_SET   0x18
 
#define MODE_PAGE_PROTOCOL_SPECIFIC_LUN   0x18
 
#define MODE_PAGE_PROTOCOL_SPECIFIC_PORT   0x19
 
#define MODE_PAGE_POWER_CONDITION   0x1A
 
#define MODE_PAGE_LUN_MAPPING   0x1B
 
#define MODE_PAGE_FAULT_REPORTING   0x1C
 
#define MODE_PAGE_CDVD_INACTIVITY   0x1D
 
#define MODE_PAGE_ELEMENT_ADDRESS   0x1D
 
#define MODE_PAGE_TRANSPORT_GEOMETRY   0x1E
 
#define MODE_PAGE_DEVICE_CAPABILITIES   0x1F
 
#define MODE_PAGE_CAPABILITIES   0x2A
 
#define MODE_SENSE_RETURN_ALL   0x3F
 
#define MODE_SENSE_CURRENT_VALUES   0x00
 
#define MODE_SENSE_CHANGEABLE_VALUES   0x40
 
#define MODE_SENSE_DEFAULT_VAULES   0x80
 
#define MODE_SENSE_SAVED_VALUES   0xc0
 
#define SCSIOP_TEST_UNIT_READY   0x00
 
#define SCSIOP_REZERO_UNIT   0x01
 
#define SCSIOP_REWIND   0x01
 
#define SCSIOP_REQUEST_BLOCK_ADDR   0x02
 
#define SCSIOP_REQUEST_SENSE   0x03
 
#define SCSIOP_FORMAT_UNIT   0x04
 
#define SCSIOP_READ_BLOCK_LIMITS   0x05
 
#define SCSIOP_REASSIGN_BLOCKS   0x07
 
#define SCSIOP_INIT_ELEMENT_STATUS   0x07
 
#define SCSIOP_READ6   0x08
 
#define SCSIOP_RECEIVE   0x08
 
#define SCSIOP_WRITE6   0x0A
 
#define SCSIOP_PRINT   0x0A
 
#define SCSIOP_SEND   0x0A
 
#define SCSIOP_SEEK6   0x0B
 
#define SCSIOP_TRACK_SELECT   0x0B
 
#define SCSIOP_SLEW_PRINT   0x0B
 
#define SCSIOP_SET_CAPACITY   0x0B
 
#define SCSIOP_SEEK_BLOCK   0x0C
 
#define SCSIOP_PARTITION   0x0D
 
#define SCSIOP_READ_REVERSE   0x0F
 
#define SCSIOP_WRITE_FILEMARKS   0x10
 
#define SCSIOP_FLUSH_BUFFER   0x10
 
#define SCSIOP_SPACE   0x11
 
#define SCSIOP_INQUIRY   0x12
 
#define SCSIOP_VERIFY6   0x13
 
#define SCSIOP_RECOVER_BUF_DATA   0x14
 
#define SCSIOP_MODE_SELECT   0x15
 
#define SCSIOP_RESERVE_UNIT   0x16
 
#define SCSIOP_RELEASE_UNIT   0x17
 
#define SCSIOP_COPY   0x18
 
#define SCSIOP_ERASE   0x19
 
#define SCSIOP_MODE_SENSE   0x1A
 
#define SCSIOP_START_STOP_UNIT   0x1B
 
#define SCSIOP_STOP_PRINT   0x1B
 
#define SCSIOP_LOAD_UNLOAD   0x1B
 
#define SCSIOP_RECEIVE_DIAGNOSTIC   0x1C
 
#define SCSIOP_SEND_DIAGNOSTIC   0x1D
 
#define SCSIOP_MEDIUM_REMOVAL   0x1E
 
#define SCSIOP_READ_FORMATTED_CAPACITY   0x23
 
#define SCSIOP_READ_CAPACITY   0x25
 
#define SCSIOP_READ   0x28
 
#define SCSIOP_WRITE   0x2A
 
#define SCSIOP_SEEK   0x2B
 
#define SCSIOP_LOCATE   0x2B
 
#define SCSIOP_POSITION_TO_ELEMENT   0x2B
 
#define SCSIOP_WRITE_VERIFY   0x2E
 
#define SCSIOP_VERIFY   0x2F
 
#define SCSIOP_SEARCH_DATA_HIGH   0x30
 
#define SCSIOP_SEARCH_DATA_EQUAL   0x31
 
#define SCSIOP_SEARCH_DATA_LOW   0x32
 
#define SCSIOP_SET_LIMITS   0x33
 
#define SCSIOP_READ_POSITION   0x34
 
#define SCSIOP_SYNCHRONIZE_CACHE   0x35
 
#define SCSIOP_COMPARE   0x39
 
#define SCSIOP_COPY_COMPARE   0x3A
 
#define SCSIOP_WRITE_DATA_BUFF   0x3B
 
#define SCSIOP_READ_DATA_BUFF   0x3C
 
#define SCSIOP_WRITE_LONG   0x3F
 
#define SCSIOP_CHANGE_DEFINITION   0x40
 
#define SCSIOP_WRITE_SAME   0x41
 
#define SCSIOP_READ_SUB_CHANNEL   0x42
 
#define SCSIOP_READ_TOC   0x43
 
#define SCSIOP_READ_HEADER   0x44
 
#define SCSIOP_REPORT_DENSITY_SUPPORT   0x44
 
#define SCSIOP_PLAY_AUDIO   0x45
 
#define SCSIOP_GET_CONFIGURATION   0x46
 
#define SCSIOP_PLAY_AUDIO_MSF   0x47
 
#define SCSIOP_PLAY_TRACK_INDEX   0x48
 
#define SCSIOP_PLAY_TRACK_RELATIVE   0x49
 
#define SCSIOP_GET_EVENT_STATUS   0x4A
 
#define SCSIOP_PAUSE_RESUME   0x4B
 
#define SCSIOP_LOG_SELECT   0x4C
 
#define SCSIOP_LOG_SENSE   0x4D
 
#define SCSIOP_STOP_PLAY_SCAN   0x4E
 
#define SCSIOP_XDWRITE   0x50
 
#define SCSIOP_XPWRITE   0x51
 
#define SCSIOP_READ_DISK_INFORMATION   0x51
 
#define SCSIOP_READ_DISC_INFORMATION   0x51
 
#define SCSIOP_READ_TRACK_INFORMATION   0x52
 
#define SCSIOP_XDWRITE_READ   0x53
 
#define SCSIOP_RESERVE_TRACK_RZONE   0x53
 
#define SCSIOP_SEND_OPC_INFORMATION   0x54
 
#define SCSIOP_MODE_SELECT10   0x55
 
#define SCSIOP_RESERVE_UNIT10   0x56
 
#define SCSIOP_RESERVE_ELEMENT   0x56
 
#define SCSIOP_RELEASE_UNIT10   0x57
 
#define SCSIOP_RELEASE_ELEMENT   0x57
 
#define SCSIOP_REPAIR_TRACK   0x58
 
#define SCSIOP_MODE_SENSE10   0x5A
 
#define SCSIOP_CLOSE_TRACK_SESSION   0x5B
 
#define SCSIOP_READ_BUFFER_CAPACITY   0x5C
 
#define SCSIOP_SEND_CUE_SHEET   0x5D
 
#define SCSIOP_PERSISTENT_RESERVE_IN   0x5E
 
#define SCSIOP_PERSISTENT_RESERVE_OUT   0x5F
 
#define SCSIOP_XDWRITE_EXTENDED16   0x80
 
#define SCSIOP_WRITE_FILEMARKS16   0x80
 
#define SCSIOP_REBUILD16   0x81
 
#define SCSIOP_READ_REVERSE16   0x81
 
#define SCSIOP_REGENERATE16   0x82
 
#define SCSIOP_EXTENDED_COPY   0x83
 
#define SCSIOP_RECEIVE_COPY_RESULTS   0x84
 
#define SCSIOP_ATA_PASSTHROUGH16   0x85
 
#define SCSIOP_ACCESS_CONTROL_IN   0x86
 
#define SCSIOP_ACCESS_CONTROL_OUT   0x87
 
#define SCSIOP_READ16   0x88
 
#define SCSIOP_WRITE16   0x8A
 
#define SCSIOP_READ_ATTRIBUTES   0x8C
 
#define SCSIOP_WRITE_ATTRIBUTES   0x8D
 
#define SCSIOP_WRITE_VERIFY16   0x8E
 
#define SCSIOP_VERIFY16   0x8F
 
#define SCSIOP_PREFETCH16   0x90
 
#define SCSIOP_SYNCHRONIZE_CACHE16   0x91
 
#define SCSIOP_SPACE16   0x91
 
#define SCSIOP_LOCK_UNLOCK_CACHE16   0x92
 
#define SCSIOP_LOCATE16   0x92
 
#define SCSIOP_WRITE_SAME16   0x93
 
#define SCSIOP_ERASE16   0x93
 
#define SCSIOP_READ_CAPACITY16   0x9E
 
#define SCSIOP_SERVICE_ACTION_IN16   0x9E
 
#define SCSIOP_SERVICE_ACTION_OUT16   0x9F
 
#define SCSIOP_REPORT_LUNS   0xA0
 
#define SCSIOP_BLANK   0xA1
 
#define SCSIOP_ATA_PASSTHROUGH12   0xA1
 
#define SCSIOP_SEND_EVENT   0xA2
 
#define SCSIOP_SEND_KEY   0xA3
 
#define SCSIOP_MAINTENANCE_IN   0xA3
 
#define SCSIOP_REPORT_KEY   0xA4
 
#define SCSIOP_MAINTENANCE_OUT   0xA4
 
#define SCSIOP_MOVE_MEDIUM   0xA5
 
#define SCSIOP_LOAD_UNLOAD_SLOT   0xA6
 
#define SCSIOP_EXCHANGE_MEDIUM   0xA6
 
#define SCSIOP_SET_READ_AHEAD   0xA7
 
#define SCSIOP_MOVE_MEDIUM_ATTACHED   0xA7
 
#define SCSIOP_READ12   0xA8
 
#define SCSIOP_GET_MESSAGE   0xA8
 
#define SCSIOP_SERVICE_ACTION_OUT12   0xA9
 
#define SCSIOP_WRITE12   0xAA
 
#define SCSIOP_SEND_MESSAGE   0xAB
 
#define SCSIOP_SERVICE_ACTION_IN12   0xAB
 
#define SCSIOP_GET_PERFORMANCE   0xAC
 
#define SCSIOP_READ_DVD_STRUCTURE   0xAD
 
#define SCSIOP_WRITE_VERIFY12   0xAE
 
#define SCSIOP_VERIFY12   0xAF
 
#define SCSIOP_SEARCH_DATA_HIGH12   0xB0
 
#define SCSIOP_SEARCH_DATA_EQUAL12   0xB1
 
#define SCSIOP_SEARCH_DATA_LOW12   0xB2
 
#define SCSIOP_SET_LIMITS12   0xB3
 
#define SCSIOP_READ_ELEMENT_STATUS_ATTACHED   0xB4
 
#define SCSIOP_REQUEST_VOL_ELEMENT   0xB5
 
#define SCSIOP_SEND_VOLUME_TAG   0xB6
 
#define SCSIOP_SET_STREAMING   0xB6
 
#define SCSIOP_READ_DEFECT_DATA   0xB7
 
#define SCSIOP_READ_ELEMENT_STATUS   0xB8
 
#define SCSIOP_READ_CD_MSF   0xB9
 
#define SCSIOP_SCAN_CD   0xBA
 
#define SCSIOP_REDUNDANCY_GROUP_IN   0xBA
 
#define SCSIOP_SET_CD_SPEED   0xBB
 
#define SCSIOP_REDUNDANCY_GROUP_OUT   0xBB
 
#define SCSIOP_PLAY_CD   0xBC
 
#define SCSIOP_SPARE_IN   0xBC
 
#define SCSIOP_MECHANISM_STATUS   0xBD
 
#define SCSIOP_SPARE_OUT   0xBD
 
#define SCSIOP_READ_CD   0xBE
 
#define SCSIOP_VOLUME_SET_IN   0xBE
 
#define SCSIOP_SEND_DVD_STRUCTURE   0xBF
 
#define SCSIOP_VOLUME_SET_OUT   0xBF
 
#define SCSIOP_INIT_ELEMENT_RANGE   0xE7
 
#define SCSISTAT_GOOD   0x00
 
#define SCSISTAT_CHECK_CONDITION   0x02
 
#define SCSISTAT_CONDITION_MET   0x04
 
#define SCSISTAT_BUSY   0x08
 
#define SCSISTAT_INTERMEDIATE   0x10
 
#define SCSISTAT_INTERMEDIATE_COND_MET   0x14
 
#define SCSISTAT_RESERVATION_CONFLICT   0x18
 
#define SCSISTAT_COMMAND_TERMINATED   0x22
 
#define SCSISTAT_QUEUE_FULL   0x28
 
#define SETBITON   1
 
#define SETBITOFF   0
 
#define SP_RETURN_NOT_FOUND   0
 
#define SP_RETURN_FOUND   1
 
#define SP_RETURN_ERROR   2
 
#define SP_RETURN_BAD_CONFIG   3
 
#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   0x01
 
#define SRB_POWER_FLAGS_ADAPTER_REQUEST   0x01
 
#define SRB_PNP_FLAGS_ADAPTER_REQUEST   0x01
 
#define STOR_MAP_NO_BUFFERS   (0)
 
#define STOR_MAP_ALL_BUFFERS   (1)
 
#define STOR_MAP_NON_READ_WRITE_BUFFERS   (2)
 
#define STOR_STATUS_SUCCESS   (0x00000000L)
 
#define STOR_STATUS_UNSUCCESSFUL   (0xC1000001L)
 
#define STOR_STATUS_NOT_IMPLEMENTED   (0xC1000002L)
 
#define STOR_STATUS_INSUFFICIENT_RESOURCES   (0xC1000003L)
 
#define STOR_STATUS_BUFFER_TOO_SMALL   (0xC1000004L)
 
#define STOR_STATUS_ACCESS_DENIED   (0xC1000005L)
 
#define STOR_STATUS_INVALID_PARAMETER   (0xC1000006L)
 
#define STOR_STATUS_INVALID_DEVICE_REQUEST   (0xC1000007L)
 
#define STOR_STATUS_INVALID_IRQL   (0xC1000008L)
 
#define STOR_STATUS_INVALID_DEVICE_STATE   (0xC1000009L)
 
#define STOR_STATUS_INVALID_BUFFER_SIZE   (0xC100000AL)
 
#define STOR_STATUS_UNSUPPORTED_VERSION   (0xC100000BL)
 
#define STOR_STATUS_BUSY   (0xC100000CL)
 
#define VPD_SUPPORTED_PAGES   0x00
 
#define VPD_SERIAL_NUMBER   0x80
 
#define VPD_DEVICE_IDENTIFIERS   0x83
 
#define VPD_MEDIA_SERIAL_NUMBER   0x84
 
#define VPD_SOFTWARE_INTERFACE_IDENTIFIERS   0x84
 
#define VPD_NETWORK_MANAGEMENT_ADDRESSES   0x85
 
#define VPD_EXTENDED_INQUIRY_DATA   0x86
 
#define VPD_MODE_PAGE_POLICY   0x87
 
#define VPD_SCSI_PORTS   0x88
 
#define SCSI_SENSE_NO_SENSE   0x00
 
#define SCSI_SENSE_RECOVERED_ERROR   0x01
 
#define SCSI_SENSE_NOT_READY   0x02
 
#define SCSI_SENSE_MEDIUM_ERROR   0x03
 
#define SCSI_SENSE_HARDWARE_ERROR   0x04
 
#define SCSI_SENSE_ILLEGAL_REQUEST   0x05
 
#define SCSI_SENSE_UNIT_ATTENTION   0x06
 
#define SCSI_SENSE_DATA_PROTECT   0x07
 
#define SCSI_SENSE_BLANK_CHECK   0x08
 
#define SCSI_SENSE_UNIQUE   0x09
 
#define SCSI_SENSE_COPY_ABORTED   0x0A
 
#define SCSI_SENSE_ABORTED_COMMAND   0x0B
 
#define SCSI_SENSE_EQUAL   0x0C
 
#define SCSI_SENSE_VOL_OVERFLOW   0x0D
 
#define SCSI_SENSE_MISCOMPARE   0x0E
 
#define SCSI_SENSE_RESERVED   0x0F
 
#define REVERSE_BYTES_QUAD(Destination, Source)
 
#define REVERSE_BYTES(Destination, Source)
 
#define REVERSE_BYTES_SHORT(Destination, Source)
 
#define StorPortCopyMemory(Destination, Source, Length)   memcpy((Destination),(Source),(Length))
 
#define DebugPrint(x)
 

Typedefs

typedef enum _STOR_SYNCHRONIZATION_MODEL STOR_SYNCHRONIZATION_MODEL
 
typedef enum _INTERRUPT_SYNCHRONIZATION_MODE INTERRUPT_SYNCHRONIZATION_MODE
 
typedef enum _STOR_DMA_WIDTH STOR_DMA_WIDTH
 
typedef enum _STOR_SPINLOCK STOR_SPINLOCK
 
typedef enum _SCSI_ADAPTER_CONTROL_TYPE SCSI_ADAPTER_CONTROL_TYPE
 
typedef enum _SCSI_ADAPTER_CONTROL_TYPE * PSCSI_ADAPTER_CONTROL_TYPE
 
typedef enum _SCSI_ADAPTER_CONTROL_STATUS SCSI_ADAPTER_CONTROL_STATUS
 
typedef enum _SCSI_ADAPTER_CONTROL_STATUS * PSCSI_ADAPTER_CONTROL_STATUS
 
typedef enum _SCSI_NOTIFICATION_TYPE SCSI_NOTIFICATION_TYPE
 
typedef enum _SCSI_NOTIFICATION_TYPE * PSCSI_NOTIFICATION_TYPE
 
typedef enum _STOR_DEVICE_POWER_STATE STOR_DEVICE_POWER_STATE
 
typedef enum _STOR_DEVICE_POWER_STATE * PSTOR_DEVICE_POWER_STATE
 
typedef enum _STOR_POWER_ACTION STOR_POWER_ACTION
 
typedef enum _STOR_POWER_ACTION * PSTOR_POWER_ACTION
 
typedef enum _STOR_PNP_ACTION STOR_PNP_ACTION
 
typedef enum _STOR_PNP_ACTION * PSTOR_PNP_ACTION
 
typedef enum _VPD_CODE_SET VPD_CODE_SET
 
typedef enum _VPD_CODE_SET * PVPD_CODE_SET
 
typedef enum _VPD_ASSOCIATION VPD_ASSOCIATION
 
typedef enum _VPD_ASSOCIATION * PVPD_ASSOCIATION
 
typedef enum _VPD_IDENTIFIER_TYPE VPD_IDENTIFIER_TYPE
 
typedef enum _VPD_IDENTIFIER_TYPE * PVPD_IDENTIFIER_TYPE
 
typedef enum _STORPORT_FUNCTION_CODE STORPORT_FUNCTION_CODE
 
typedef enum _STORPORT_FUNCTION_CODE * PSTORPORT_FUNCTION_CODE
 
typedef enum _STOR_EVENT_ASSOCIATION_ENUM STOR_EVENT_ASSOCIATION_ENUM
 
typedef enum _GETSGSTATUS GETSGSTATUS
 
typedef enum _GETSGSTATUS * PGETSGSTATUS
 
typedef struct _SCSI_REQUEST_BLOCK SCSI_REQUEST_BLOCK
 
typedef struct _SCSI_REQUEST_BLOCK * PSCSI_REQUEST_BLOCK
 
typedef struct _SCSI_WMI_REQUEST_BLOCK SCSI_WMI_REQUEST_BLOCK
 
typedef struct _SCSI_WMI_REQUEST_BLOCK * PSCSI_WMI_REQUEST_BLOCK
 
typedef struct _SCSI_POWER_REQUEST_BLOCK SCSI_POWER_REQUEST_BLOCK
 
typedef struct _SCSI_POWER_REQUEST_BLOCK * PSCSI_POWER_REQUEST_BLOCK
 
typedef struct _STOR_DEVICE_CAPABILITIES STOR_DEVICE_CAPABILITIES
 
typedef struct _STOR_DEVICE_CAPABILITIES * PSTOR_DEVICE_CAPABILITIES
 
typedef struct _SCSI_PNP_REQUEST_BLOCK SCSI_PNP_REQUEST_BLOCK
 
typedef struct _SCSI_PNP_REQUEST_BLOCK * PSCSI_PNP_REQUEST_BLOCK
 
typedef union _CDB CDB
 
typedef union _CDB * PCDB
 
typedef union _EIGHT_BYTE EIGHT_BYTE
 
typedef union _EIGHT_BYTE * PEIGHT_BYTE
 
typedef union _FOUR_BYTE FOUR_BYTE
 
typedef union _FOUR_BYTE * PFOUR_BYTE
 
typedef union _TWO_BYTE TWO_BYTE
 
typedef union _TWO_BYTE * PTWO_BYTE
 
typedef struct _INQUIRYDATA INQUIRYDATA
 
typedef struct _INQUIRYDATA * PINQUIRYDATA
 
typedef struct _VPD_MEDIA_SERIAL_NUMBER_PAGE VPD_MEDIA_SERIAL_NUMBER_PAGE
 
typedef struct _VPD_MEDIA_SERIAL_NUMBER_PAGE * PVPD_MEDIA_SERIAL_NUMBER_PAGE
 
typedef struct _VPD_SERIAL_NUMBER_PAGE VPD_SERIAL_NUMBER_PAGE
 
typedef struct _VPD_SERIAL_NUMBER_PAGE * PVPD_SERIAL_NUMBER_PAGE
 
typedef struct _VPD_IDENTIFICATION_DESCRIPTOR VPD_IDENTIFICATION_DESCRIPTOR
 
typedef struct _VPD_IDENTIFICATION_DESCRIPTOR * PVPD_IDENTIFICATION_DESCRIPTOR
 
typedef struct _VPD_IDENTIFICATION_PAGE VPD_IDENTIFICATION_PAGE
 
typedef struct _VPD_IDENTIFICATION_PAGE * PVPD_IDENTIFICATION_PAGE
 
typedef struct _VPD_SUPPORTED_PAGES_PAGE VPD_SUPPORTED_PAGES_PAGE
 
typedef struct _VPD_SUPPORTED_PAGES_PAGE * PVPD_SUPPORTED_PAGES_PAGE
 
typedef struct _READ_CAPACITY_DATA READ_CAPACITY_DATA
 
typedef struct _READ_CAPACITY_DATA * PREAD_CAPACITY_DATA
 
typedef struct _READ_CAPACITY_DATA_EX READ_CAPACITY_DATA_EX
 
typedef struct _READ_CAPACITY_DATA_EX * PREAD_CAPACITY_DATA_EX
 
typedef struct _MODE_PARAMETER_HEADER MODE_PARAMETER_HEADER
 
typedef struct _MODE_PARAMETER_HEADER * PMODE_PARAMETER_HEADER
 
typedef struct _MODE_PARAMETER_HEADER10 MODE_PARAMETER_HEADER10
 
typedef struct _MODE_PARAMETER_HEADER10 * PMODE_PARAMETER_HEADER10
 
typedef struct _MODE_PARAMETER_BLOCK MODE_PARAMETER_BLOCK
 
typedef struct _MODE_PARAMETER_BLOCK * PMODE_PARAMETER_BLOCK
 
typedef struct _LUN_LIST LUN_LIST
 
typedef struct _LUN_LIST * PLUN_LIST
 
typedef struct _SENSE_DATA SENSE_DATA
 
typedef struct _SENSE_DATA * PSENSE_DATA
 
typedef PHYSICAL_ADDRESS STOR_PHYSICAL_ADDRESS
 
typedef struct _ACCESS_RANGE ACCESS_RANGE
 
typedef struct _ACCESS_RANGE * PACCESS_RANGE
 
typedef struct _MEMORY_REGION MEMORY_REGION
 
typedef struct _MEMORY_REGION * PMEMORY_REGION
 
typedef BOOLEAN(NTAPI * PHW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE) (_In_ PVOID DeviceExtension, _In_ ULONG MessageId)
 
typedef struct _PORT_CONFIGURATION_INFORMATION PORT_CONFIGURATION_INFORMATION
 
typedef struct _PORT_CONFIGURATION_INFORMATION * PPORT_CONFIGURATION_INFORMATION
 
typedef struct _STOR_SCATTER_GATHER_ELEMENT STOR_SCATTER_GATHER_ELEMENT
 
typedef struct _STOR_SCATTER_GATHER_ELEMENT * PSTOR_SCATTER_GATHER_ELEMENT
 
typedef struct _STOR_SCATTER_GATHER_LIST STOR_SCATTER_GATHER_LIST
 
typedef struct _STOR_SCATTER_GATHER_LIST * PSTOR_SCATTER_GATHER_LIST
 
typedef struct _DPC_BUFFER DPC_BUFFER
 
typedef struct _STOR_DPC STOR_DPC
 
typedef struct _STOR_DPC * PSTOR_DPC
 
typedef struct _STOR_LOCK_HANDLE STOR_LOCK_HANDLE
 
typedef struct _STOR_LOCK_HANDLE * PSTOR_LOCK_HANDLE
 
typedef struct _STOR_LOG_EVENT_DETAILS STOR_LOG_EVENT_DETAILS
 
typedef struct _STOR_LOG_EVENT_DETAILS * PSTOR_LOG_EVENT_DETAILS
 
typedef struct _PERF_CONFIGURATION_DATA PERF_CONFIGURATION_DATA
 
typedef struct _PERF_CONFIGURATION_DATA * PPERF_CONFIGURATION_DATA
 
typedef struct _STARTIO_PERFORMANCE_PARAMETERS STARTIO_PERFORMANCE_PARAMETERS
 
typedef struct _STARTIO_PERFORMANCE_PARAMETERS * PSTARTIO_PERFORMANCE_PARAMETERS
 
typedef struct _MESSAGE_INTERRUPT_INFORMATION MESSAGE_INTERRUPT_INFORMATION
 
typedef struct _MESSAGE_INTERRUPT_INFORMATION * PMESSAGE_INTERRUPT_INFORMATION
 
typedef BOOLEAN(NTAPI * PHW_INITIALIZE) (_In_ PVOID DeviceExtension)
 
typedef BOOLEAN(NTAPI * PHW_BUILDIO) (_In_ PVOID DeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb)
 
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_TIMER_EX) (_In_ PVOID DeviceExtension, _In_opt_ PVOID Context)
 
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 BOOLEAN(* PHW_PASSIVE_INITIALIZE_ROUTINE) (_In_ PVOID DeviceExtension)
 
typedef VOID(* PHW_DPC_ROUTINE) (_In_ PSTOR_DPC Dpc, _In_ PVOID HwDeviceExtension, _In_ PVOID SystemArgument1, _In_ PVOID SystemArgument2)
 
typedef _In_ PVOID Context
 
typedef STOR_SYNCHRONIZED_ACCESS * PSTOR_SYNCHRONIZED_ACCESS
 
typedef VOID(NTAPI * PpostScaterGatherExecute) (_In_ PVOID *DeviceObject, _In_ PVOID *Irp, _In_ PSTOR_SCATTER_GATHER_LIST ScatterGather, _In_ PVOID Context)
 
typedef BOOLEAN(NTAPI * PStorPortGetMessageInterruptInformation) (_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _Out_ PMESSAGE_INTERRUPT_INFORMATION InterruptInfo)
 
typedef VOID(NTAPI * PStorPortPutScatterGatherList) (_In_ PVOID HwDeviceExtension, _In_ PSTOR_SCATTER_GATHER_LIST ScatterGatherList, _In_ BOOLEAN WriteToDevice)
 
typedef GETSGSTATUS(NTAPI * PStorPortBuildScatterGatherList) (_In_ PVOID HwDeviceExtension, _In_ PVOID Mdl, _In_ PVOID CurrentVa, _In_ ULONG Length, _In_ PpostScaterGatherExecute ExecutionRoutine, _In_ PVOID Context, _In_ BOOLEAN WriteToDevice, _Inout_ PVOID ScatterGatherBuffer, _In_ ULONG ScatterGatherBufferLength)
 
typedef VOID(NTAPI * PStorPortFreePool) (_In_ PVOID PMemory, _In_ PVOID HwDeviceExtension, _In_opt_ PVOID PMdl)
 
typedef PVOID(NTAPI * PStorPortAllocatePool) (_In_ ULONG NumberOfBytes, _In_ ULONG Tag, _In_ PVOID HwDeviceExtension, _Out_ PVOID *PMdl)
 
typedef PVOID(NTAPI * PStorPortGetSystemAddress) (_In_ PSCSI_REQUEST_BLOCK Srb)
 
typedef struct _STORPORT_EXTENDED_FUNCTIONS STORPORT_EXTENDED_FUNCTIONS
 
typedef struct _STORPORT_EXTENDED_FUNCTIONS * PSTORPORT_EXTENDED_FUNCTIONS
 
typedef struct _HW_INITIALIZATION_DATA HW_INITIALIZATION_DATA
 
typedef struct _HW_INITIALIZATION_DATA * PHW_INITIALIZATION_DATA
 

Enumerations

enum  _STOR_SYNCHRONIZATION_MODEL { StorSynchronizeHalfDuplex , StorSynchronizeFullDuplex }
 
enum  _INTERRUPT_SYNCHRONIZATION_MODE { InterruptSupportNone , InterruptSynchronizeAll , InterruptSynchronizePerMessage }
 
enum  _STOR_DMA_WIDTH { DmaUnknown , Dma32Bit , Dma64BitScatterGather , Dma64Bit }
 
enum  _STOR_SPINLOCK { DpcLock = 1 , StartIoLock , InterruptLock }
 
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  _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
}
 
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  _VPD_CODE_SET {
  VpdCodeSetReserved = 0 , VpdCodeSetBinary = 1 , VpdCodeSetAscii = 2 , VpdCodeSetUTF8 = 3 ,
  VpdCodeSetReserved = 0 , VpdCodeSetBinary = 1 , VpdCodeSetAscii = 2 , VpdCodeSetUTF8 = 3
}
 
enum  _VPD_ASSOCIATION {
  VpdAssocDevice = 0 , VpdAssocPort = 1 , VpdAssocTarget = 2 , VpdAssocReserved1 = 3 ,
  VpdAssocReserved2 = 4 , VpdAssocDevice = 0 , VpdAssocPort = 1 , VpdAssocTarget = 2 ,
  VpdAssocReserved1 = 3 , VpdAssocReserved2 = 4
}
 
enum  _VPD_IDENTIFIER_TYPE {
  VpdIdentifierTypeVendorSpecific = 0 , VpdIdentifierTypeVendorId = 1 , VpdIdentifierTypeEUI64 = 2 , VpdIdentifierTypeFCPHName = 3 ,
  VpdIdentifierTypePortRelative = 4 , VpdIdentifierTypeTargetPortGroup = 5 , VpdIdentifierTypeLogicalUnitGroup = 6 , VpdIdentifierTypeMD5LogicalUnitId = 7 ,
  VpdIdentifierTypeSCSINameString = 8 , VpdIdentifierTypeVendorSpecific = 0 , VpdIdentifierTypeVendorId = 1 , VpdIdentifierTypeEUI64 = 2 ,
  VpdIdentifierTypeFCPHName = 3 , VpdIdentifierTypePortRelative = 4 , VpdIdentifierTypeTargetPortGroup = 5 , VpdIdentifierTypeLogicalUnitGroup = 6 ,
  VpdIdentifierTypeMD5LogicalUnitId = 7 , VpdIdentifierTypeSCSINameString = 8
}
 
enum  _STORPORT_FUNCTION_CODE {
  ExtFunctionAllocatePool , ExtFunctionFreePool , ExtFunctionAllocateMdl , ExtFunctionFreeMdl ,
  ExtFunctionBuildMdlForNonPagedPool , ExtFunctionGetSystemAddress , ExtFunctionGetOriginalMdl , ExtFunctionCompleteServiceIrp ,
  ExtFunctionGetDeviceObjects , ExtFunctionBuildScatterGatherList , ExtFunctionPutScatterGatherList , ExtFunctionAcquireMSISpinLock ,
  ExtFunctionReleaseMSISpinLock , ExtFunctionGetMessageInterruptInformation , ExtFunctionInitializePerformanceOptimizations , ExtFunctionGetStartIoPerformanceParameters ,
  ExtFunctionLogSystemEvent , ExtFunctionGetCurrentProcessorNumber , ExtFunctionGetActiveGroupCount , ExtFunctionGetGroupAffinity ,
  ExtFunctionGetActiveNodeCount , ExtFunctionGetNodeAffinity , ExtFunctionGetHighestNodeNumber , ExtFunctionGetLogicalProcessorRelationship ,
  ExtFunctionAllocateContiguousMemorySpecifyCacheNode , ExtFunctionFreeContiguousMemorySpecifyCache , ExtFunctionSetPowerSettingNotificationGuids = 0x1A , ExtFunctionInvokeAcpiMethod ,
  ExtFunctionGetRequestInfo , ExtFunctionInitializeWorker , ExtFunctionQueueWorkItem , ExtFunctionFreeWorker ,
  ExtFunctionInitializeTimer , ExtFunctionRequestTimer , ExtFunctionFreeTimer
}
 
enum  _STOR_EVENT_ASSOCIATION_ENUM { StorEventAdapterAssociation = 0 , StorEventLunAssociation , StorEventTargetAssociation , StorEventInvalidAssociation }
 
enum  _GETSGSTATUS { SG_ALLOCATED = 0 , SG_BUFFER_TOO_SMALL }
 

Functions

typedef BOOLEAN (NTAPI STOR_SYNCHRONIZED_ACCESS)(_In_ PVOID HwDeviceExtension
 
STORPORT_API PUCHAR NTAPI StorPortAllocateRegistryBuffer (_In_ PVOID HwDeviceExtension, _In_ PULONG Length)
 
STORPORT_API BOOLEAN NTAPI StorPortBusy (_In_ PVOID HwDeviceExtension, _In_ ULONG RequestsToComplete)
 
STORPORT_API VOID NTAPI StorPortCompleteRequest (_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ UCHAR SrbStatus)
 
STORPORT_API ULONG64 NTAPI StorPortConvertPhysicalAddressToUlong64 (_In_ STOR_PHYSICAL_ADDRESS Address)
 
STORPORT_API STOR_PHYSICAL_ADDRESS NTAPI StorPortConvertUlong64ToPhysicalAddress (_In_ ULONG64 UlongAddress)
 
STORPORT_API VOID __cdecl StorPortDebugPrint (_In_ ULONG DebugPrintLevel, _In_ PCCHAR DebugMessage,...)
 
STORPORT_API BOOLEAN NTAPI StorPortDeviceBusy (_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG RequestsToComplete)
 
STORPORT_API BOOLEAN NTAPI StorPortDeviceReady (_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
 
STORPORT_API VOID NTAPI StorPortFreeDeviceBase (_In_ PVOID HwDeviceExtension, _In_ PVOID MappedAddress)
 
STORPORT_API VOID NTAPI StorPortFreeRegistryBuffer (_In_ PVOID HwDeviceExtension, _In_ PUCHAR Buffer)
 
STORPORT_API ULONG NTAPI StorPortGetBusData (_In_ PVOID DeviceExtension, _In_ ULONG BusDataType, _In_ ULONG SystemIoBusNumber, _In_ ULONG SlotNumber, _Out_ _When_(Length !=0, _Out_writes_bytes_(Length)) PVOID Buffer, _In_ ULONG Length)
 
STORPORT_API PVOID NTAPI StorPortGetDeviceBase (_In_ PVOID HwDeviceExtension, _In_ INTERFACE_TYPE BusType, _In_ ULONG SystemIoBusNumber, _In_ STOR_PHYSICAL_ADDRESS IoAddress, _In_ ULONG NumberOfBytes, _In_ BOOLEAN InIoSpace)
 
STORPORT_API PVOID NTAPI StorPortGetLogicalUnit (_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
 
STORPORT_API STOR_PHYSICAL_ADDRESS NTAPI StorPortGetPhysicalAddress (_In_ PVOID HwDeviceExtension, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _In_ PVOID VirtualAddress, _Out_ ULONG *Length)
 
STORPORT_API PSTOR_SCATTER_GATHER_LIST NTAPI StorPortGetScatterGatherList (_In_ PVOID DeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb)
 
STORPORT_API PSCSI_REQUEST_BLOCK NTAPI StorPortGetSrb (_In_ PVOID DeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ LONG QueueTag)
 
STORPORT_API PVOID NTAPI StorPortGetUncachedExtension (_In_ PVOID HwDeviceExtension, _In_ PPORT_CONFIGURATION_INFORMATION ConfigInfo, _In_ ULONG NumberOfBytes)
 
STORPORT_API PVOID NTAPI StorPortGetVirtualAddress (_In_ PVOID HwDeviceExtension, _In_ STOR_PHYSICAL_ADDRESS PhysicalAddress)
 
STORPORT_API ULONG NTAPI StorPortInitialize (_In_ PVOID Argument1, _In_ PVOID Argument2, _In_ PHW_INITIALIZATION_DATA HwInitializationData, _In_opt_ PVOID Unused)
 
STORPORT_API VOID NTAPI StorPortLogError (_In_ PVOID HwDeviceExtension, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG ErrorCode, _In_ ULONG UniqueId)
 
STORPORT_API VOID NTAPI StorPortMoveMemory (_Out_writes_bytes_(Length) PVOID WriteBuffer, _In_reads_bytes_(Length) PVOID ReadBuffer, _In_ ULONG Length)
 
STORPORT_API VOID __cdecl StorPortNotification (_In_ SCSI_NOTIFICATION_TYPE NotificationType, _In_ PVOID HwDeviceExtension,...)
 
STORPORT_API VOID NTAPI StorPortQuerySystemTime (_Out_ PLARGE_INTEGER CurrentTime)
 
STORPORT_API BOOLEAN NTAPI StorPortPause (_In_ PVOID HwDeviceExtension, _In_ ULONG TimeOut)
 
STORPORT_API BOOLEAN NTAPI StorPortPauseDevice (_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG TimeOut)
 
STORPORT_API VOID NTAPI StorPortReadPortBufferUchar (_In_ PVOID HwDeviceExtension, _In_ PUCHAR Port, _In_ PUCHAR Buffer, _In_ ULONG Count)
 
STORPORT_API VOID NTAPI StorPortReadPortBufferUlong (_In_ PVOID HwDeviceExtension, _In_ PULONG Port, _In_ PULONG Buffer, _In_ ULONG Count)
 
STORPORT_API VOID NTAPI StorPortReadPortBufferUshort (_In_ PVOID HwDeviceExtension, _In_ PUSHORT Port, _In_ PUSHORT Buffer, _In_ ULONG Count)
 
STORPORT_API UCHAR NTAPI StorPortReadPortUchar (_In_ PVOID HwDeviceExtension, _In_ PUCHAR Port)
 
STORPORT_API ULONG NTAPI StorPortReadPortUlong (_In_ PVOID HwDeviceExtension, _In_ PULONG Port)
 
STORPORT_API USHORT NTAPI StorPortReadPortUshort (_In_ PVOID HwDeviceExtension, _In_ PUSHORT Port)
 
STORPORT_API VOID NTAPI StorPortReadRegisterBufferUchar (_In_ PVOID HwDeviceExtension, _In_ PUCHAR Register, _In_ PUCHAR Buffer, _In_ ULONG Count)
 
STORPORT_API VOID NTAPI StorPortReadRegisterBufferUlong (_In_ PVOID HwDeviceExtension, _In_ PULONG Register, _In_ PULONG Buffer, _In_ ULONG Count)
 
STORPORT_API VOID NTAPI StorPortReadRegisterBufferUshort (_In_ PVOID HwDeviceExtension, _In_ PUSHORT Register, _In_ PUSHORT Buffer, _In_ ULONG Count)
 
STORPORT_API UCHAR NTAPI StorPortReadRegisterUchar (_In_ PVOID HwDeviceExtension, _In_ PUCHAR Register)
 
STORPORT_API ULONG NTAPI StorPortReadRegisterUlong (_In_ PVOID HwDeviceExtension, _In_ PULONG Register)
 
STORPORT_API USHORT NTAPI StorPortReadRegisterUshort (_In_ PVOID HwDeviceExtension, _In_ PUSHORT Register)
 
STORPORT_API BOOLEAN NTAPI StorPortReady (_In_ PVOID HwDeviceExtension)
 
STORPORT_API BOOLEAN NTAPI StorPortRegistryRead (_In_ PVOID HwDeviceExtension, _In_ PUCHAR ValueName, _In_ ULONG Global, _In_ ULONG Type, _In_ PUCHAR Buffer, _In_ PULONG BufferLength)
 
STORPORT_API BOOLEAN NTAPI StorPortRegistryWrite (_In_ PVOID HwDeviceExtension, _In_ PUCHAR ValueName, _In_ ULONG Global, _In_ ULONG Type, _In_ PUCHAR Buffer, _In_ ULONG BufferLength)
 
STORPORT_API BOOLEAN NTAPI StorPortResume (_In_ PVOID HwDeviceExtension)
 
STORPORT_API BOOLEAN NTAPI StorPortResumeDevice (_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
 
STORPORT_API ULONG NTAPI StorPortSetBusDataByOffset (_In_ PVOID DeviceExtension, _In_ ULONG BusDataType, _In_ ULONG SystemIoBusNumber, _In_ ULONG SlotNumber, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
 
STORPORT_API BOOLEAN NTAPI StorPortSetDeviceQueueDepth (_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG Depth)
 
STORPORT_API VOID NTAPI StorPortStallExecution (_In_ ULONG Delay)
 
STORPORT_API VOID NTAPI StorPortSynchronizeAccess (_In_ PVOID HwDeviceExtension, _In_ PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine, _In_opt_ PVOID Context)
 
STORPORT_API BOOLEAN NTAPI StorPortValidateRange (_In_ PVOID HwDeviceExtension, _In_ INTERFACE_TYPE BusType, _In_ ULONG SystemIoBusNumber, _In_ STOR_PHYSICAL_ADDRESS IoAddress, _In_ ULONG NumberOfBytes, _In_ BOOLEAN InIoSpace)
 
STORPORT_API VOID NTAPI StorPortWritePortBufferUchar (_In_ PVOID HwDeviceExtension, _In_ PUCHAR Port, _In_ PUCHAR Buffer, _In_ ULONG Count)
 
STORPORT_API VOID NTAPI StorPortWritePortBufferUlong (_In_ PVOID HwDeviceExtension, _In_ PULONG Port, _In_ PULONG Buffer, _In_ ULONG Count)
 
STORPORT_API VOID NTAPI StorPortWritePortBufferUshort (_In_ PVOID HwDeviceExtension, _In_ PUSHORT Port, _In_ PUSHORT Buffer, _In_ ULONG Count)
 
STORPORT_API VOID NTAPI StorPortWritePortUchar (_In_ PVOID HwDeviceExtension, _In_ PUCHAR Port, _In_ UCHAR Value)
 
STORPORT_API VOID NTAPI StorPortWritePortUlong (_In_ PVOID HwDeviceExtension, _In_ PULONG Port, _In_ ULONG Value)
 
STORPORT_API VOID NTAPI StorPortWritePortUshort (_In_ PVOID HwDeviceExtension, _In_ PUSHORT Port, _In_ USHORT Value)
 
STORPORT_API VOID NTAPI StorPortWriteRegisterBufferUchar (_In_ PVOID HwDeviceExtension, _In_ PUCHAR Register, _In_ PUCHAR Buffer, _In_ ULONG Count)
 
STORPORT_API VOID NTAPI StorPortWriteRegisterBufferUlong (_In_ PVOID HwDeviceExtension, _In_ PULONG Register, _In_ PULONG Buffer, _In_ ULONG Count)
 
STORPORT_API VOID NTAPI StorPortWriteRegisterBufferUshort (_In_ PVOID HwDeviceExtension, _In_ PUSHORT Register, _In_ PUSHORT Buffer, _In_ ULONG Count)
 
STORPORT_API VOID NTAPI StorPortWriteRegisterUchar (_In_ PVOID HwDeviceExtension, _In_ PUCHAR Register, _In_ UCHAR Value)
 
STORPORT_API VOID NTAPI StorPortWriteRegisterUlong (_In_ PVOID HwDeviceExtension, _In_ PULONG Register, _In_ ULONG Value)
 
STORPORT_API VOID NTAPI StorPortWriteRegisterUshort (_In_ PVOID HwDeviceExtension, _In_ PUSHORT Register, _In_ USHORT Value)
 
FORCEINLINE BOOLEAN StorPortEnablePassiveInitialization (_In_ PVOID DeviceExtension, _In_ PHW_PASSIVE_INITIALIZE_ROUTINE HwPassiveInitializeRoutine)
 
FORCEINLINE VOID StorPortInitializeDpc (_In_ PVOID DeviceExtension, _Out_ PSTOR_DPC Dpc, _In_ PHW_DPC_ROUTINE HwDpcRoutine)
 
FORCEINLINE BOOLEAN StorPortIssueDpc (_In_ PVOID DeviceExtension, _In_ PSTOR_DPC Dpc, _In_ PVOID SystemArgument1, _In_ PVOID SystemArgument2)
 
FORCEINLINE VOID StorPortAcquireSpinLock (_In_ PVOID DeviceExtension, _In_ STOR_SPINLOCK SpinLock, _In_ PVOID LockContext, _Inout_ PSTOR_LOCK_HANDLE LockHandle)
 
FORCEINLINE VOID StorPortReleaseSpinLock (_In_ PVOID DeviceExtension, _Inout_ PSTOR_LOCK_HANDLE LockHandle)
 
STORPORT_API ULONG StorPortExtendedFunction (_In_ STORPORT_FUNCTION_CODE FunctionCode, _In_ PVOID HwDeviceExtension,...)
 
FORCEINLINE ULONG StorPortAllocatePool (_In_ PVOID HwDeviceExtension, _In_ ULONG NumberOfBytes, _In_ ULONG Tag, _Out_ PVOID *BufferPointer)
 
FORCEINLINE ULONG StorPortFreePool (_In_ PVOID HwDeviceExtension, _In_ PVOID BufferPointer)
 
FORCEINLINE ULONG StorPortAllocateMdl (_In_ PVOID HwDeviceExtension, _In_ PVOID BufferPointer, _In_ ULONG NumberOfBytes, _Out_ PVOID *Mdl)
 
FORCEINLINE ULONG StorPortFreeMdl (_In_ PVOID HwDeviceExtension, _In_ PVOID Mdl)
 
FORCEINLINE ULONG StorPortBuildMdlForNonPagedPool (_In_ PVOID HwDeviceExtension, _Inout_ PVOID Mdl)
 
FORCEINLINE ULONG StorPortGetSystemAddress (_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Out_ PVOID *SystemAddress)
 
FORCEINLINE ULONG StorPortGetOriginalMdl (_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Out_ PVOID *Mdl)
 
FORCEINLINE ULONG StorPortCompleteServiceIrp (_In_ PVOID HwDeviceExtension, _In_ PVOID Irp)
 
FORCEINLINE ULONG StorPortGetDeviceObjects (_In_ PVOID HwDeviceExtension, _Out_ PVOID *AdapterDeviceObject, _Out_ PVOID *PhysicalDeviceObject, _Out_ PVOID *LowerDeviceObject)
 
FORCEINLINE ULONG StorPortBuildScatterGatherList (_In_ PVOID HwDeviceExtension, _In_ PVOID Mdl, _In_ PVOID CurrentVa, _In_ ULONG Length, _In_ PpostScaterGatherExecute ExecutionRoutine, _In_ PVOID Context, _In_ BOOLEAN WriteToDevice, _Inout_ PVOID ScatterGatherBuffer, _In_ ULONG ScatterGatherBufferLength)
 
FORCEINLINE ULONG StorPortPutScatterGatherList (_In_ PVOID HwDeviceExtension, _In_ PSTOR_SCATTER_GATHER_LIST ScatterGatherList, _In_ BOOLEAN WriteToDevice)
 
FORCEINLINE ULONG StorPortAcquireMSISpinLock (_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _In_ PULONG OldIrql)
 
FORCEINLINE ULONG StorPortReleaseMSISpinLock (_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _In_ ULONG OldIrql)
 
FORCEINLINE ULONG StorPortGetMSIInfo (_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _Out_ PMESSAGE_INTERRUPT_INFORMATION InterruptInfo)
 
FORCEINLINE ULONG StorPortInitializePerfOpts (_In_ PVOID HwDeviceExtension, _In_ BOOLEAN Query, _Inout_ PPERF_CONFIGURATION_DATA PerfConfigData)
 
FORCEINLINE ULONG StorPortGetStartIoPerfParams (_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Inout_ PSTARTIO_PERFORMANCE_PARAMETERS StartIoPerfParams)
 
FORCEINLINE ULONG StorPortLogSystemEvent (_In_ PVOID HwDeviceExtension, _Inout_ PSTOR_LOG_EVENT_DETAILS LogDetails, _Inout_ PULONG MaximumSize)
 

Macro Definition Documentation

◆ _NTSTORPORT_

#define _NTSTORPORT_

Definition at line 32 of file storport.h.

◆ ARRAY_CONTROLLER_DEVICE

#define ARRAY_CONTROLLER_DEVICE   0x0C

Definition at line 88 of file storport.h.

◆ BRIDGE_CONTROLLER_DEVICE

#define BRIDGE_CONTROLLER_DEVICE   0x10

Definition at line 92 of file storport.h.

◆ CDB10GENERIC_LENGTH

#define CDB10GENERIC_LENGTH   10

Definition at line 99 of file storport.h.

◆ CDB12GENERIC_LENGTH

#define CDB12GENERIC_LENGTH   12

Definition at line 100 of file storport.h.

◆ CDB6GENERIC_LENGTH

#define CDB6GENERIC_LENGTH   6

Definition at line 98 of file storport.h.

◆ COMMUNICATION_DEVICE

#define COMMUNICATION_DEVICE   0x09

Definition at line 87 of file storport.h.

◆ DebugPrint

#define DebugPrint (   x)

Definition at line 3272 of file storport.h.

◆ DEVICE_CONNECTED

#define DEVICE_CONNECTED   0x00

Definition at line 96 of file storport.h.

◆ DIRECT_ACCESS_DEVICE

#define DIRECT_ACCESS_DEVICE   0x00

Definition at line 78 of file storport.h.

◆ FILE_DEVICE_SCSI

#define FILE_DEVICE_SCSI   0x0000001b

Definition at line 106 of file storport.h.

◆ INQUIRYDATABUFFERSIZE

#define INQUIRYDATABUFFERSIZE   36

Definition at line 102 of file storport.h.

◆ IOCTL_SCSI_EXECUTE_IN

#define IOCTL_SCSI_EXECUTE_IN   ((FILE_DEVICE_SCSI << 16) + 0x0011)

Definition at line 107 of file storport.h.

◆ IOCTL_SCSI_EXECUTE_NONE

#define IOCTL_SCSI_EXECUTE_NONE   ((FILE_DEVICE_SCSI << 16) + 0x0013)

Definition at line 109 of file storport.h.

◆ IOCTL_SCSI_EXECUTE_OUT

#define IOCTL_SCSI_EXECUTE_OUT   ((FILE_DEVICE_SCSI << 16) + 0x0012)

Definition at line 108 of file storport.h.

◆ LOGICAL_UNIT_NOT_PRESENT_DEVICE

#define LOGICAL_UNIT_NOT_PRESENT_DEVICE   0x7F

Definition at line 94 of file storport.h.

◆ MAX_SENSE_BUFFER_SIZE

#define MAX_SENSE_BUFFER_SIZE   255

Definition at line 104 of file storport.h.

◆ MEDIUM_CHANGER

#define MEDIUM_CHANGER   0x08

Definition at line 86 of file storport.h.

◆ MODE_PAGE_CACHING

#define MODE_PAGE_CACHING   0x08

Definition at line 120 of file storport.h.

◆ MODE_PAGE_CAPABILITIES

#define MODE_PAGE_CAPABILITIES   0x2A

Definition at line 143 of file storport.h.

◆ MODE_PAGE_CD_AUDIO_CONTROL

#define MODE_PAGE_CD_AUDIO_CONTROL   0x0E

Definition at line 125 of file storport.h.

◆ MODE_PAGE_CDVD_FEATURE_SET

#define MODE_PAGE_CDVD_FEATURE_SET   0x18

Definition at line 133 of file storport.h.

◆ MODE_PAGE_CDVD_INACTIVITY

#define MODE_PAGE_CDVD_INACTIVITY   0x1D

Definition at line 139 of file storport.h.

◆ MODE_PAGE_CONTROL

#define MODE_PAGE_CONTROL   0x0A

Definition at line 122 of file storport.h.

◆ MODE_PAGE_DATA_COMPRESS

#define MODE_PAGE_DATA_COMPRESS   0x0F

Definition at line 126 of file storport.h.

◆ MODE_PAGE_DEVICE_CAPABILITIES

#define MODE_PAGE_DEVICE_CAPABILITIES   0x1F

Definition at line 142 of file storport.h.

◆ MODE_PAGE_DEVICE_CONFIG

#define MODE_PAGE_DEVICE_CONFIG   0x10

Definition at line 127 of file storport.h.

◆ MODE_PAGE_DISCONNECT

#define MODE_PAGE_DISCONNECT   0x02

Definition at line 113 of file storport.h.

◆ MODE_PAGE_ELEMENT_ADDRESS

#define MODE_PAGE_ELEMENT_ADDRESS   0x1D

Definition at line 140 of file storport.h.

◆ MODE_PAGE_ENCLOSURE_SERVICES_MANAGEMENT

#define MODE_PAGE_ENCLOSURE_SERVICES_MANAGEMENT   0x14

Definition at line 130 of file storport.h.

◆ MODE_PAGE_ERROR_RECOVERY

#define MODE_PAGE_ERROR_RECOVERY   0x01

Definition at line 112 of file storport.h.

◆ MODE_PAGE_EXTENDED

#define MODE_PAGE_EXTENDED   0x15

Definition at line 131 of file storport.h.

◆ MODE_PAGE_EXTENDED_DEVICE_SPECIFIC

#define MODE_PAGE_EXTENDED_DEVICE_SPECIFIC   0x16

Definition at line 132 of file storport.h.

◆ MODE_PAGE_FAULT_REPORTING

#define MODE_PAGE_FAULT_REPORTING   0x1C

Definition at line 138 of file storport.h.

◆ MODE_PAGE_FLEXIBILE

#define MODE_PAGE_FLEXIBILE   0x05

Definition at line 117 of file storport.h.

◆ MODE_PAGE_FORMAT_DEVICE

#define MODE_PAGE_FORMAT_DEVICE   0x03

Definition at line 114 of file storport.h.

◆ MODE_PAGE_LUN_MAPPING

#define MODE_PAGE_LUN_MAPPING   0x1B

Definition at line 137 of file storport.h.

◆ MODE_PAGE_MEDIUM_PARTITION

#define MODE_PAGE_MEDIUM_PARTITION   0x11

Definition at line 129 of file storport.h.

◆ MODE_PAGE_MEDIUM_TYPES

#define MODE_PAGE_MEDIUM_TYPES   0x0B

Definition at line 123 of file storport.h.

◆ MODE_PAGE_MRW

#define MODE_PAGE_MRW   0x03

Definition at line 115 of file storport.h.

◆ MODE_PAGE_NOTCH_PARTITION

#define MODE_PAGE_NOTCH_PARTITION   0x0C

Definition at line 124 of file storport.h.

◆ MODE_PAGE_PERIPHERAL

#define MODE_PAGE_PERIPHERAL   0x09

Definition at line 121 of file storport.h.

◆ MODE_PAGE_POWER_CONDITION

#define MODE_PAGE_POWER_CONDITION   0x1A

Definition at line 136 of file storport.h.

◆ MODE_PAGE_PROTOCOL_SPECIFIC_LUN

#define MODE_PAGE_PROTOCOL_SPECIFIC_LUN   0x18

Definition at line 134 of file storport.h.

◆ MODE_PAGE_PROTOCOL_SPECIFIC_PORT

#define MODE_PAGE_PROTOCOL_SPECIFIC_PORT   0x19

Definition at line 135 of file storport.h.

◆ MODE_PAGE_RIGID_GEOMETRY

#define MODE_PAGE_RIGID_GEOMETRY   0x04

Definition at line 116 of file storport.h.

◆ MODE_PAGE_TRANSPORT_GEOMETRY

#define MODE_PAGE_TRANSPORT_GEOMETRY   0x1E

Definition at line 141 of file storport.h.

◆ MODE_PAGE_VENDOR_SPECIFIC

#define MODE_PAGE_VENDOR_SPECIFIC   0x00

Definition at line 111 of file storport.h.

◆ MODE_PAGE_VERIFY_ERROR

#define MODE_PAGE_VERIFY_ERROR   0x07

Definition at line 119 of file storport.h.

◆ MODE_PAGE_WRITE_PARAMETERS

#define MODE_PAGE_WRITE_PARAMETERS   0x05

Definition at line 118 of file storport.h.

◆ MODE_PAGE_XOR_CONTROL

#define MODE_PAGE_XOR_CONTROL   0x10

Definition at line 128 of file storport.h.

◆ MODE_SENSE_CHANGEABLE_VALUES

#define MODE_SENSE_CHANGEABLE_VALUES   0x40

Definition at line 147 of file storport.h.

◆ MODE_SENSE_CURRENT_VALUES

#define MODE_SENSE_CURRENT_VALUES   0x00

Definition at line 146 of file storport.h.

◆ MODE_SENSE_DEFAULT_VAULES

#define MODE_SENSE_DEFAULT_VAULES   0x80

Definition at line 148 of file storport.h.

◆ MODE_SENSE_RETURN_ALL

#define MODE_SENSE_RETURN_ALL   0x3F

Definition at line 144 of file storport.h.

◆ MODE_SENSE_SAVED_VALUES

#define MODE_SENSE_SAVED_VALUES   0xc0

Definition at line 149 of file storport.h.

◆ OBJECT_BASED_STORAGE_DEVICE

#define OBJECT_BASED_STORAGE_DEVICE   0x11

Definition at line 93 of file storport.h.

◆ OPTICAL_CARD_READER_WRITER_DEVICE

#define OPTICAL_CARD_READER_WRITER_DEVICE   0x0F

Definition at line 91 of file storport.h.

◆ OPTICAL_DEVICE

#define OPTICAL_DEVICE   0x07

Definition at line 85 of file storport.h.

◆ PRINTER_DEVICE

#define PRINTER_DEVICE   0x02

Definition at line 80 of file storport.h.

◆ PROCESSOR_DEVICE

#define PROCESSOR_DEVICE   0x03

Definition at line 81 of file storport.h.

◆ READ_ONLY_DIRECT_ACCESS_DEVICE

#define READ_ONLY_DIRECT_ACCESS_DEVICE   0x05

Definition at line 83 of file storport.h.

◆ REDUCED_BLOCK_DEVICE

#define REDUCED_BLOCK_DEVICE   0x0E

Definition at line 90 of file storport.h.

◆ REVERSE_BYTES

#define REVERSE_BYTES (   Destination,
  Source 
)
Value:
{ \
d->Byte3 = s->Byte0; \
d->Byte2 = s->Byte1; \
d->Byte1 = s->Byte2; \
d->Byte0 = s->Byte3; \
}
GLdouble s
Definition: gl.h:2039
#define d
Definition: ke_i.h:81
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
Definition: rtlfuncs.h:3051
union _FOUR_BYTE * PFOUR_BYTE

Definition at line 2441 of file storport.h.

◆ REVERSE_BYTES_QUAD

#define REVERSE_BYTES_QUAD (   Destination,
  Source 
)
Value:
{ \
d->Byte7 = s->Byte0; \
d->Byte6 = s->Byte1; \
d->Byte5 = s->Byte2; \
d->Byte4 = s->Byte3; \
d->Byte3 = s->Byte4; \
d->Byte2 = s->Byte5; \
d->Byte1 = s->Byte6; \
d->Byte0 = s->Byte7; \
}
union _EIGHT_BYTE * PEIGHT_BYTE

Definition at line 2428 of file storport.h.

◆ REVERSE_BYTES_SHORT

#define REVERSE_BYTES_SHORT (   Destination,
  Source 
)
Value:
{ \
d->Byte1 = s->Byte0; \
d->Byte0 = s->Byte1; \
}
union _TWO_BYTE * PTWO_BYTE

Definition at line 2450 of file storport.h.

◆ SCANNER_DEVICE

#define SCANNER_DEVICE   0x06

Definition at line 84 of file storport.h.

◆ SCSI_DMA64_MINIPORT_SUPPORTED

#define SCSI_DMA64_MINIPORT_SUPPORTED   0x01

Definition at line 60 of file storport.h.

◆ SCSI_DMA64_SYSTEM_SUPPORTED

#define SCSI_DMA64_SYSTEM_SUPPORTED   0x80

Definition at line 61 of file storport.h.

◆ SCSI_ENCLOSURE_DEVICE

#define SCSI_ENCLOSURE_DEVICE   0x0D

Definition at line 89 of file storport.h.

◆ SCSI_MAXIMUM_BUSES

#define SCSI_MAXIMUM_BUSES   8

Definition at line 55 of file storport.h.

◆ SCSI_MAXIMUM_BUSES_PER_ADAPTER

#define SCSI_MAXIMUM_BUSES_PER_ADAPTER   255

Definition at line 46 of file storport.h.

◆ SCSI_MAXIMUM_LOGICAL_UNITS

#define SCSI_MAXIMUM_LOGICAL_UNITS   8

Definition at line 57 of file storport.h.

◆ SCSI_MAXIMUM_LUNS_PER_TARGET

#define SCSI_MAXIMUM_LUNS_PER_TARGET   255

Definition at line 49 of file storport.h.

◆ SCSI_MAXIMUM_PHYSICAL_BREAKS

#define SCSI_MAXIMUM_PHYSICAL_BREAKS   255

Definition at line 51 of file storport.h.

◆ SCSI_MAXIMUM_TARGETS

#define SCSI_MAXIMUM_TARGETS   8

Definition at line 56 of file storport.h.

◆ SCSI_MAXIMUM_TARGETS_PER_BUS

#define SCSI_MAXIMUM_TARGETS_PER_BUS   128

Definition at line 48 of file storport.h.

◆ SCSI_MINIMUM_PHYSICAL_BREAKS

#define SCSI_MINIMUM_PHYSICAL_BREAKS   16

Definition at line 50 of file storport.h.

◆ SCSI_SENSE_ABORTED_COMMAND

#define SCSI_SENSE_ABORTED_COMMAND   0x0B

Definition at line 478 of file storport.h.

◆ SCSI_SENSE_BLANK_CHECK

#define SCSI_SENSE_BLANK_CHECK   0x08

Definition at line 475 of file storport.h.

◆ SCSI_SENSE_COPY_ABORTED

#define SCSI_SENSE_COPY_ABORTED   0x0A

Definition at line 477 of file storport.h.

◆ SCSI_SENSE_DATA_PROTECT

#define SCSI_SENSE_DATA_PROTECT   0x07

Definition at line 474 of file storport.h.

◆ SCSI_SENSE_EQUAL

#define SCSI_SENSE_EQUAL   0x0C

Definition at line 479 of file storport.h.

◆ SCSI_SENSE_HARDWARE_ERROR

#define SCSI_SENSE_HARDWARE_ERROR   0x04

Definition at line 471 of file storport.h.

◆ SCSI_SENSE_ILLEGAL_REQUEST

#define SCSI_SENSE_ILLEGAL_REQUEST   0x05

Definition at line 472 of file storport.h.

◆ SCSI_SENSE_MEDIUM_ERROR

#define SCSI_SENSE_MEDIUM_ERROR   0x03

Definition at line 470 of file storport.h.

◆ SCSI_SENSE_MISCOMPARE

#define SCSI_SENSE_MISCOMPARE   0x0E

Definition at line 481 of file storport.h.

◆ SCSI_SENSE_NO_SENSE

#define SCSI_SENSE_NO_SENSE   0x00

Definition at line 467 of file storport.h.

◆ SCSI_SENSE_NOT_READY

#define SCSI_SENSE_NOT_READY   0x02

Definition at line 469 of file storport.h.

◆ SCSI_SENSE_RECOVERED_ERROR

#define SCSI_SENSE_RECOVERED_ERROR   0x01

Definition at line 468 of file storport.h.

◆ SCSI_SENSE_RESERVED

#define SCSI_SENSE_RESERVED   0x0F

Definition at line 482 of file storport.h.

◆ SCSI_SENSE_UNIQUE

#define SCSI_SENSE_UNIQUE   0x09

Definition at line 476 of file storport.h.

◆ SCSI_SENSE_UNIT_ATTENTION

#define SCSI_SENSE_UNIT_ATTENTION   0x06

Definition at line 473 of file storport.h.

◆ SCSI_SENSE_VOL_OVERFLOW

#define SCSI_SENSE_VOL_OVERFLOW   0x0D

Definition at line 480 of file storport.h.

◆ SCSIOP_ACCESS_CONTROL_IN

#define SCSIOP_ACCESS_CONTROL_IN   0x86

Definition at line 254 of file storport.h.

◆ SCSIOP_ACCESS_CONTROL_OUT

#define SCSIOP_ACCESS_CONTROL_OUT   0x87

Definition at line 255 of file storport.h.

◆ SCSIOP_ATA_PASSTHROUGH12

#define SCSIOP_ATA_PASSTHROUGH12   0xA1

Definition at line 274 of file storport.h.

◆ SCSIOP_ATA_PASSTHROUGH16

#define SCSIOP_ATA_PASSTHROUGH16   0x85

Definition at line 253 of file storport.h.

◆ SCSIOP_BLANK

#define SCSIOP_BLANK   0xA1

Definition at line 273 of file storport.h.

◆ SCSIOP_CHANGE_DEFINITION

#define SCSIOP_CHANGE_DEFINITION   0x40

Definition at line 210 of file storport.h.

◆ SCSIOP_CLOSE_TRACK_SESSION

#define SCSIOP_CLOSE_TRACK_SESSION   0x5B

Definition at line 241 of file storport.h.

◆ SCSIOP_COMPARE

#define SCSIOP_COMPARE   0x39

Definition at line 205 of file storport.h.

◆ SCSIOP_COPY

#define SCSIOP_COPY   0x18

Definition at line 181 of file storport.h.

◆ SCSIOP_COPY_COMPARE

#define SCSIOP_COPY_COMPARE   0x3A

Definition at line 206 of file storport.h.

◆ SCSIOP_ERASE

#define SCSIOP_ERASE   0x19

Definition at line 182 of file storport.h.

◆ SCSIOP_ERASE16

#define SCSIOP_ERASE16   0x93

Definition at line 268 of file storport.h.

◆ SCSIOP_EXCHANGE_MEDIUM

#define SCSIOP_EXCHANGE_MEDIUM   0xA6

Definition at line 282 of file storport.h.

◆ SCSIOP_EXTENDED_COPY

#define SCSIOP_EXTENDED_COPY   0x83

Definition at line 251 of file storport.h.

◆ SCSIOP_FLUSH_BUFFER

#define SCSIOP_FLUSH_BUFFER   0x10

Definition at line 173 of file storport.h.

◆ SCSIOP_FORMAT_UNIT

#define SCSIOP_FORMAT_UNIT   0x04

Definition at line 156 of file storport.h.

◆ SCSIOP_GET_CONFIGURATION

#define SCSIOP_GET_CONFIGURATION   0x46

Definition at line 217 of file storport.h.

◆ SCSIOP_GET_EVENT_STATUS

#define SCSIOP_GET_EVENT_STATUS   0x4A

Definition at line 221 of file storport.h.

◆ SCSIOP_GET_MESSAGE

#define SCSIOP_GET_MESSAGE   0xA8

Definition at line 286 of file storport.h.

◆ SCSIOP_GET_PERFORMANCE

#define SCSIOP_GET_PERFORMANCE   0xAC

Definition at line 291 of file storport.h.

◆ SCSIOP_INIT_ELEMENT_RANGE

#define SCSIOP_INIT_ELEMENT_RANGE   0xE7

Definition at line 318 of file storport.h.

◆ SCSIOP_INIT_ELEMENT_STATUS

#define SCSIOP_INIT_ELEMENT_STATUS   0x07

Definition at line 159 of file storport.h.

◆ SCSIOP_INQUIRY

#define SCSIOP_INQUIRY   0x12

Definition at line 175 of file storport.h.

◆ SCSIOP_LOAD_UNLOAD

#define SCSIOP_LOAD_UNLOAD   0x1B

Definition at line 186 of file storport.h.

◆ SCSIOP_LOAD_UNLOAD_SLOT

#define SCSIOP_LOAD_UNLOAD_SLOT   0xA6

Definition at line 281 of file storport.h.

◆ SCSIOP_LOCATE

#define SCSIOP_LOCATE   0x2B

Definition at line 195 of file storport.h.

◆ SCSIOP_LOCATE16

#define SCSIOP_LOCATE16   0x92

Definition at line 266 of file storport.h.

◆ SCSIOP_LOCK_UNLOCK_CACHE16

#define SCSIOP_LOCK_UNLOCK_CACHE16   0x92

Definition at line 265 of file storport.h.

◆ SCSIOP_LOG_SELECT

#define SCSIOP_LOG_SELECT   0x4C

Definition at line 223 of file storport.h.

◆ SCSIOP_LOG_SENSE

#define SCSIOP_LOG_SENSE   0x4D

Definition at line 224 of file storport.h.

◆ SCSIOP_MAINTENANCE_IN

#define SCSIOP_MAINTENANCE_IN   0xA3

Definition at line 277 of file storport.h.

◆ SCSIOP_MAINTENANCE_OUT

#define SCSIOP_MAINTENANCE_OUT   0xA4

Definition at line 279 of file storport.h.

◆ SCSIOP_MECHANISM_STATUS

#define SCSIOP_MECHANISM_STATUS   0xBD

Definition at line 312 of file storport.h.

◆ SCSIOP_MEDIUM_REMOVAL

#define SCSIOP_MEDIUM_REMOVAL   0x1E

Definition at line 189 of file storport.h.

◆ SCSIOP_MODE_SELECT

#define SCSIOP_MODE_SELECT   0x15

Definition at line 178 of file storport.h.

◆ SCSIOP_MODE_SELECT10

#define SCSIOP_MODE_SELECT10   0x55

Definition at line 234 of file storport.h.

◆ SCSIOP_MODE_SENSE

#define SCSIOP_MODE_SENSE   0x1A

Definition at line 183 of file storport.h.

◆ SCSIOP_MODE_SENSE10

#define SCSIOP_MODE_SENSE10   0x5A

Definition at line 240 of file storport.h.

◆ SCSIOP_MOVE_MEDIUM

#define SCSIOP_MOVE_MEDIUM   0xA5

Definition at line 280 of file storport.h.

◆ SCSIOP_MOVE_MEDIUM_ATTACHED

#define SCSIOP_MOVE_MEDIUM_ATTACHED   0xA7

Definition at line 284 of file storport.h.

◆ SCSIOP_PARTITION

#define SCSIOP_PARTITION   0x0D

Definition at line 170 of file storport.h.

◆ SCSIOP_PAUSE_RESUME

#define SCSIOP_PAUSE_RESUME   0x4B

Definition at line 222 of file storport.h.

◆ SCSIOP_PERSISTENT_RESERVE_IN

#define SCSIOP_PERSISTENT_RESERVE_IN   0x5E

Definition at line 244 of file storport.h.

◆ SCSIOP_PERSISTENT_RESERVE_OUT

#define SCSIOP_PERSISTENT_RESERVE_OUT   0x5F

Definition at line 245 of file storport.h.

◆ SCSIOP_PLAY_AUDIO

#define SCSIOP_PLAY_AUDIO   0x45

Definition at line 216 of file storport.h.

◆ SCSIOP_PLAY_AUDIO_MSF

#define SCSIOP_PLAY_AUDIO_MSF   0x47

Definition at line 218 of file storport.h.

◆ SCSIOP_PLAY_CD

#define SCSIOP_PLAY_CD   0xBC

Definition at line 310 of file storport.h.

◆ SCSIOP_PLAY_TRACK_INDEX

#define SCSIOP_PLAY_TRACK_INDEX   0x48

Definition at line 219 of file storport.h.

◆ SCSIOP_PLAY_TRACK_RELATIVE

#define SCSIOP_PLAY_TRACK_RELATIVE   0x49

Definition at line 220 of file storport.h.

◆ SCSIOP_POSITION_TO_ELEMENT

#define SCSIOP_POSITION_TO_ELEMENT   0x2B

Definition at line 196 of file storport.h.

◆ SCSIOP_PREFETCH16

#define SCSIOP_PREFETCH16   0x90

Definition at line 262 of file storport.h.

◆ SCSIOP_PRINT

#define SCSIOP_PRINT   0x0A

Definition at line 163 of file storport.h.

◆ SCSIOP_READ

#define SCSIOP_READ   0x28

Definition at line 192 of file storport.h.

◆ SCSIOP_READ12

#define SCSIOP_READ12   0xA8

Definition at line 285 of file storport.h.

◆ SCSIOP_READ16

#define SCSIOP_READ16   0x88

Definition at line 256 of file storport.h.

◆ SCSIOP_READ6

#define SCSIOP_READ6   0x08

Definition at line 160 of file storport.h.

◆ SCSIOP_READ_ATTRIBUTES

#define SCSIOP_READ_ATTRIBUTES   0x8C

Definition at line 258 of file storport.h.

◆ SCSIOP_READ_BLOCK_LIMITS

#define SCSIOP_READ_BLOCK_LIMITS   0x05

Definition at line 157 of file storport.h.

◆ SCSIOP_READ_BUFFER_CAPACITY

#define SCSIOP_READ_BUFFER_CAPACITY   0x5C

Definition at line 242 of file storport.h.

◆ SCSIOP_READ_CAPACITY

#define SCSIOP_READ_CAPACITY   0x25

Definition at line 191 of file storport.h.

◆ SCSIOP_READ_CAPACITY16

#define SCSIOP_READ_CAPACITY16   0x9E

Definition at line 269 of file storport.h.

◆ SCSIOP_READ_CD

#define SCSIOP_READ_CD   0xBE

Definition at line 314 of file storport.h.

◆ SCSIOP_READ_CD_MSF

#define SCSIOP_READ_CD_MSF   0xB9

Definition at line 305 of file storport.h.

◆ SCSIOP_READ_DATA_BUFF

#define SCSIOP_READ_DATA_BUFF   0x3C

Definition at line 208 of file storport.h.

◆ SCSIOP_READ_DEFECT_DATA

#define SCSIOP_READ_DEFECT_DATA   0xB7

Definition at line 303 of file storport.h.

◆ SCSIOP_READ_DISC_INFORMATION

#define SCSIOP_READ_DISC_INFORMATION   0x51

Definition at line 229 of file storport.h.

◆ SCSIOP_READ_DISK_INFORMATION

#define SCSIOP_READ_DISK_INFORMATION   0x51

Definition at line 228 of file storport.h.

◆ SCSIOP_READ_DVD_STRUCTURE

#define SCSIOP_READ_DVD_STRUCTURE   0xAD

Definition at line 292 of file storport.h.

◆ SCSIOP_READ_ELEMENT_STATUS

#define SCSIOP_READ_ELEMENT_STATUS   0xB8

Definition at line 304 of file storport.h.

◆ SCSIOP_READ_ELEMENT_STATUS_ATTACHED

#define SCSIOP_READ_ELEMENT_STATUS_ATTACHED   0xB4

Definition at line 299 of file storport.h.

◆ SCSIOP_READ_FORMATTED_CAPACITY

#define SCSIOP_READ_FORMATTED_CAPACITY   0x23

Definition at line 190 of file storport.h.

◆ SCSIOP_READ_HEADER

#define SCSIOP_READ_HEADER   0x44

Definition at line 214 of file storport.h.

◆ SCSIOP_READ_POSITION

#define SCSIOP_READ_POSITION   0x34

Definition at line 203 of file storport.h.

◆ SCSIOP_READ_REVERSE

#define SCSIOP_READ_REVERSE   0x0F

Definition at line 171 of file storport.h.

◆ SCSIOP_READ_REVERSE16

#define SCSIOP_READ_REVERSE16   0x81

Definition at line 249 of file storport.h.

◆ SCSIOP_READ_SUB_CHANNEL

#define SCSIOP_READ_SUB_CHANNEL   0x42

Definition at line 212 of file storport.h.

◆ SCSIOP_READ_TOC

#define SCSIOP_READ_TOC   0x43

Definition at line 213 of file storport.h.

◆ SCSIOP_READ_TRACK_INFORMATION

#define SCSIOP_READ_TRACK_INFORMATION   0x52

Definition at line 230 of file storport.h.

◆ SCSIOP_REASSIGN_BLOCKS

#define SCSIOP_REASSIGN_BLOCKS   0x07

Definition at line 158 of file storport.h.

◆ SCSIOP_REBUILD16

#define SCSIOP_REBUILD16   0x81

Definition at line 248 of file storport.h.

◆ SCSIOP_RECEIVE

#define SCSIOP_RECEIVE   0x08

Definition at line 161 of file storport.h.

◆ SCSIOP_RECEIVE_COPY_RESULTS

#define SCSIOP_RECEIVE_COPY_RESULTS   0x84

Definition at line 252 of file storport.h.

◆ SCSIOP_RECEIVE_DIAGNOSTIC

#define SCSIOP_RECEIVE_DIAGNOSTIC   0x1C

Definition at line 187 of file storport.h.

◆ SCSIOP_RECOVER_BUF_DATA

#define SCSIOP_RECOVER_BUF_DATA   0x14

Definition at line 177 of file storport.h.

◆ SCSIOP_REDUNDANCY_GROUP_IN

#define SCSIOP_REDUNDANCY_GROUP_IN   0xBA

Definition at line 307 of file storport.h.

◆ SCSIOP_REDUNDANCY_GROUP_OUT

#define SCSIOP_REDUNDANCY_GROUP_OUT   0xBB

Definition at line 309 of file storport.h.

◆ SCSIOP_REGENERATE16

#define SCSIOP_REGENERATE16   0x82

Definition at line 250 of file storport.h.

◆ SCSIOP_RELEASE_ELEMENT

#define SCSIOP_RELEASE_ELEMENT   0x57

Definition at line 238 of file storport.h.

◆ SCSIOP_RELEASE_UNIT

#define SCSIOP_RELEASE_UNIT   0x17

Definition at line 180 of file storport.h.

◆ SCSIOP_RELEASE_UNIT10

#define SCSIOP_RELEASE_UNIT10   0x57

Definition at line 237 of file storport.h.

◆ SCSIOP_REPAIR_TRACK

#define SCSIOP_REPAIR_TRACK   0x58

Definition at line 239 of file storport.h.

◆ SCSIOP_REPORT_DENSITY_SUPPORT

#define SCSIOP_REPORT_DENSITY_SUPPORT   0x44

Definition at line 215 of file storport.h.

◆ SCSIOP_REPORT_KEY

#define SCSIOP_REPORT_KEY   0xA4

Definition at line 278 of file storport.h.

◆ SCSIOP_REPORT_LUNS

#define SCSIOP_REPORT_LUNS   0xA0

Definition at line 272 of file storport.h.

◆ SCSIOP_REQUEST_BLOCK_ADDR

#define SCSIOP_REQUEST_BLOCK_ADDR   0x02

Definition at line 154 of file storport.h.

◆ SCSIOP_REQUEST_SENSE

#define SCSIOP_REQUEST_SENSE   0x03

Definition at line 155 of file storport.h.

◆ SCSIOP_REQUEST_VOL_ELEMENT

#define SCSIOP_REQUEST_VOL_ELEMENT   0xB5

Definition at line 300 of file storport.h.

◆ SCSIOP_RESERVE_ELEMENT

#define SCSIOP_RESERVE_ELEMENT   0x56

Definition at line 236 of file storport.h.

◆ SCSIOP_RESERVE_TRACK_RZONE

#define SCSIOP_RESERVE_TRACK_RZONE   0x53

Definition at line 232 of file storport.h.

◆ SCSIOP_RESERVE_UNIT

#define SCSIOP_RESERVE_UNIT   0x16

Definition at line 179 of file storport.h.

◆ SCSIOP_RESERVE_UNIT10

#define SCSIOP_RESERVE_UNIT10   0x56

Definition at line 235 of file storport.h.

◆ SCSIOP_REWIND

#define SCSIOP_REWIND   0x01

Definition at line 153 of file storport.h.

◆ SCSIOP_REZERO_UNIT

#define SCSIOP_REZERO_UNIT   0x01

Definition at line 152 of file storport.h.

◆ SCSIOP_SCAN_CD

#define SCSIOP_SCAN_CD   0xBA

Definition at line 306 of file storport.h.

◆ SCSIOP_SEARCH_DATA_EQUAL

#define SCSIOP_SEARCH_DATA_EQUAL   0x31

Definition at line 200 of file storport.h.

◆ SCSIOP_SEARCH_DATA_EQUAL12

#define SCSIOP_SEARCH_DATA_EQUAL12   0xB1

Definition at line 296 of file storport.h.

◆ SCSIOP_SEARCH_DATA_HIGH

#define SCSIOP_SEARCH_DATA_HIGH   0x30

Definition at line 199 of file storport.h.

◆ SCSIOP_SEARCH_DATA_HIGH12

#define SCSIOP_SEARCH_DATA_HIGH12   0xB0

Definition at line 295 of file storport.h.

◆ SCSIOP_SEARCH_DATA_LOW

#define SCSIOP_SEARCH_DATA_LOW   0x32

Definition at line 201 of file storport.h.

◆ SCSIOP_SEARCH_DATA_LOW12

#define SCSIOP_SEARCH_DATA_LOW12   0xB2

Definition at line 297 of file storport.h.

◆ SCSIOP_SEEK

#define SCSIOP_SEEK   0x2B

Definition at line 194 of file storport.h.

◆ SCSIOP_SEEK6

#define SCSIOP_SEEK6   0x0B

Definition at line 165 of file storport.h.

◆ SCSIOP_SEEK_BLOCK

#define SCSIOP_SEEK_BLOCK   0x0C

Definition at line 169 of file storport.h.

◆ SCSIOP_SEND

#define SCSIOP_SEND   0x0A

Definition at line 164 of file storport.h.

◆ SCSIOP_SEND_CUE_SHEET

#define SCSIOP_SEND_CUE_SHEET   0x5D

Definition at line 243 of file storport.h.

◆ SCSIOP_SEND_DIAGNOSTIC

#define SCSIOP_SEND_DIAGNOSTIC   0x1D

Definition at line 188 of file storport.h.

◆ SCSIOP_SEND_DVD_STRUCTURE

#define SCSIOP_SEND_DVD_STRUCTURE   0xBF

Definition at line 316 of file storport.h.

◆ SCSIOP_SEND_EVENT

#define SCSIOP_SEND_EVENT   0xA2

Definition at line 275 of file storport.h.

◆ SCSIOP_SEND_KEY

#define SCSIOP_SEND_KEY   0xA3

Definition at line 276 of file storport.h.

◆ SCSIOP_SEND_MESSAGE

#define SCSIOP_SEND_MESSAGE   0xAB

Definition at line 289 of file storport.h.

◆ SCSIOP_SEND_OPC_INFORMATION

#define SCSIOP_SEND_OPC_INFORMATION   0x54

Definition at line 233 of file storport.h.

◆ SCSIOP_SEND_VOLUME_TAG

#define SCSIOP_SEND_VOLUME_TAG   0xB6

Definition at line 301 of file storport.h.

◆ SCSIOP_SERVICE_ACTION_IN12

#define SCSIOP_SERVICE_ACTION_IN12   0xAB

Definition at line 290 of file storport.h.

◆ SCSIOP_SERVICE_ACTION_IN16

#define SCSIOP_SERVICE_ACTION_IN16   0x9E

Definition at line 270 of file storport.h.

◆ SCSIOP_SERVICE_ACTION_OUT12

#define SCSIOP_SERVICE_ACTION_OUT12   0xA9

Definition at line 287 of file storport.h.

◆ SCSIOP_SERVICE_ACTION_OUT16

#define SCSIOP_SERVICE_ACTION_OUT16   0x9F

Definition at line 271 of file storport.h.

◆ SCSIOP_SET_CAPACITY

#define SCSIOP_SET_CAPACITY   0x0B

Definition at line 168 of file storport.h.

◆ SCSIOP_SET_CD_SPEED

#define SCSIOP_SET_CD_SPEED   0xBB

Definition at line 308 of file storport.h.

◆ SCSIOP_SET_LIMITS

#define SCSIOP_SET_LIMITS   0x33

Definition at line 202 of file storport.h.

◆ SCSIOP_SET_LIMITS12

#define SCSIOP_SET_LIMITS12   0xB3

Definition at line 298 of file storport.h.

◆ SCSIOP_SET_READ_AHEAD

#define SCSIOP_SET_READ_AHEAD   0xA7

Definition at line 283 of file storport.h.

◆ SCSIOP_SET_STREAMING

#define SCSIOP_SET_STREAMING   0xB6

Definition at line 302 of file storport.h.

◆ SCSIOP_SLEW_PRINT

#define SCSIOP_SLEW_PRINT   0x0B

Definition at line 167 of file storport.h.

◆ SCSIOP_SPACE

#define SCSIOP_SPACE   0x11

Definition at line 174 of file storport.h.

◆ SCSIOP_SPACE16

#define SCSIOP_SPACE16   0x91

Definition at line 264 of file storport.h.

◆ SCSIOP_SPARE_IN

#define SCSIOP_SPARE_IN   0xBC

Definition at line 311 of file storport.h.

◆ SCSIOP_SPARE_OUT

#define SCSIOP_SPARE_OUT   0xBD

Definition at line 313 of file storport.h.

◆ SCSIOP_START_STOP_UNIT

#define SCSIOP_START_STOP_UNIT   0x1B

Definition at line 184 of file storport.h.

◆ SCSIOP_STOP_PLAY_SCAN

#define SCSIOP_STOP_PLAY_SCAN   0x4E

Definition at line 225 of file storport.h.

◆ SCSIOP_STOP_PRINT

#define SCSIOP_STOP_PRINT   0x1B

Definition at line 185 of file storport.h.

◆ SCSIOP_SYNCHRONIZE_CACHE

#define SCSIOP_SYNCHRONIZE_CACHE   0x35

Definition at line 204 of file storport.h.

◆ SCSIOP_SYNCHRONIZE_CACHE16

#define SCSIOP_SYNCHRONIZE_CACHE16   0x91

Definition at line 263 of file storport.h.

◆ SCSIOP_TEST_UNIT_READY

#define SCSIOP_TEST_UNIT_READY   0x00

Definition at line 151 of file storport.h.

◆ SCSIOP_TRACK_SELECT

#define SCSIOP_TRACK_SELECT   0x0B

Definition at line 166 of file storport.h.

◆ SCSIOP_VERIFY

#define SCSIOP_VERIFY   0x2F

Definition at line 198 of file storport.h.

◆ SCSIOP_VERIFY12

#define SCSIOP_VERIFY12   0xAF

Definition at line 294 of file storport.h.

◆ SCSIOP_VERIFY16

#define SCSIOP_VERIFY16   0x8F

Definition at line 261 of file storport.h.

◆ SCSIOP_VERIFY6

#define SCSIOP_VERIFY6   0x13

Definition at line 176 of file storport.h.

◆ SCSIOP_VOLUME_SET_IN

#define SCSIOP_VOLUME_SET_IN   0xBE

Definition at line 315 of file storport.h.

◆ SCSIOP_VOLUME_SET_OUT

#define SCSIOP_VOLUME_SET_OUT   0xBF

Definition at line 317 of file storport.h.

◆ SCSIOP_WRITE

#define SCSIOP_WRITE   0x2A

Definition at line 193 of file storport.h.

◆ SCSIOP_WRITE12

#define SCSIOP_WRITE12   0xAA

Definition at line 288 of file storport.h.

◆ SCSIOP_WRITE16

#define SCSIOP_WRITE16   0x8A

Definition at line 257 of file storport.h.

◆ SCSIOP_WRITE6

#define SCSIOP_WRITE6   0x0A

Definition at line 162 of file storport.h.

◆ SCSIOP_WRITE_ATTRIBUTES

#define SCSIOP_WRITE_ATTRIBUTES   0x8D

Definition at line 259 of file storport.h.

◆ SCSIOP_WRITE_DATA_BUFF

#define SCSIOP_WRITE_DATA_BUFF   0x3B

Definition at line 207 of file storport.h.

◆ SCSIOP_WRITE_FILEMARKS

#define SCSIOP_WRITE_FILEMARKS   0x10

Definition at line 172 of file storport.h.

◆ SCSIOP_WRITE_FILEMARKS16

#define SCSIOP_WRITE_FILEMARKS16   0x80

Definition at line 247 of file storport.h.

◆ SCSIOP_WRITE_LONG

#define SCSIOP_WRITE_LONG   0x3F

Definition at line 209 of file storport.h.

◆ SCSIOP_WRITE_SAME

#define SCSIOP_WRITE_SAME   0x41

Definition at line 211 of file storport.h.

◆ SCSIOP_WRITE_SAME16

#define SCSIOP_WRITE_SAME16   0x93

Definition at line 267 of file storport.h.

◆ SCSIOP_WRITE_VERIFY

#define SCSIOP_WRITE_VERIFY   0x2E

Definition at line 197 of file storport.h.

◆ SCSIOP_WRITE_VERIFY12

#define SCSIOP_WRITE_VERIFY12   0xAE

Definition at line 293 of file storport.h.

◆ SCSIOP_WRITE_VERIFY16

#define SCSIOP_WRITE_VERIFY16   0x8E

Definition at line 260 of file storport.h.

◆ SCSIOP_XDWRITE

#define SCSIOP_XDWRITE   0x50

Definition at line 226 of file storport.h.

◆ SCSIOP_XDWRITE_EXTENDED16

#define SCSIOP_XDWRITE_EXTENDED16   0x80

Definition at line 246 of file storport.h.

◆ SCSIOP_XDWRITE_READ

#define SCSIOP_XDWRITE_READ   0x53

Definition at line 231 of file storport.h.

◆ SCSIOP_XPWRITE

#define SCSIOP_XPWRITE   0x51

Definition at line 227 of file storport.h.

◆ SCSISTAT_BUSY

#define SCSISTAT_BUSY   0x08

Definition at line 323 of file storport.h.

◆ SCSISTAT_CHECK_CONDITION

#define SCSISTAT_CHECK_CONDITION   0x02

Definition at line 321 of file storport.h.

◆ SCSISTAT_COMMAND_TERMINATED

#define SCSISTAT_COMMAND_TERMINATED   0x22

Definition at line 327 of file storport.h.

◆ SCSISTAT_CONDITION_MET

#define SCSISTAT_CONDITION_MET   0x04

Definition at line 322 of file storport.h.

◆ SCSISTAT_GOOD

#define SCSISTAT_GOOD   0x00

Definition at line 320 of file storport.h.

◆ SCSISTAT_INTERMEDIATE

#define SCSISTAT_INTERMEDIATE   0x10

Definition at line 324 of file storport.h.

◆ SCSISTAT_INTERMEDIATE_COND_MET

#define SCSISTAT_INTERMEDIATE_COND_MET   0x14

Definition at line 325 of file storport.h.

◆ SCSISTAT_QUEUE_FULL

#define SCSISTAT_QUEUE_FULL   0x28

Definition at line 328 of file storport.h.

◆ SCSISTAT_RESERVATION_CONFLICT

#define SCSISTAT_RESERVATION_CONFLICT   0x18

Definition at line 326 of file storport.h.

◆ SENSE_BUFFER_SIZE

#define SENSE_BUFFER_SIZE   18

Definition at line 103 of file storport.h.

◆ SEQUENTIAL_ACCESS_DEVICE

#define SEQUENTIAL_ACCESS_DEVICE   0x01

Definition at line 79 of file storport.h.

◆ SETBITOFF

#define SETBITOFF   0

Definition at line 331 of file storport.h.

◆ SETBITON

#define SETBITON   1

Definition at line 330 of file storport.h.

◆ SP_RETURN_BAD_CONFIG

#define SP_RETURN_BAD_CONFIG   3

Definition at line 336 of file storport.h.

◆ SP_RETURN_ERROR

#define SP_RETURN_ERROR   2

Definition at line 335 of file storport.h.

◆ SP_RETURN_FOUND

#define SP_RETURN_FOUND   1

Definition at line 334 of file storport.h.

◆ SP_RETURN_NOT_FOUND

#define SP_RETURN_NOT_FOUND   0

Definition at line 333 of file storport.h.

◆ SP_UNINITIALIZED_VALUE

#define SP_UNINITIALIZED_VALUE   ((ULONG) ~0)

Definition at line 66 of file storport.h.

◆ SP_UNTAGGED

#define SP_UNTAGGED   ((UCHAR) ~0)

Definition at line 67 of file storport.h.

◆ SRB_FLAGS_ADAPTER_CACHE_ENABLE

#define SRB_FLAGS_ADAPTER_CACHE_ENABLE   0x00000200

Definition at line 413 of file storport.h.

◆ SRB_FLAGS_ALLOCATED_FROM_ZONE

#define SRB_FLAGS_ALLOCATED_FROM_ZONE   0x00020000

Definition at line 417 of file storport.h.

◆ SRB_FLAGS_BYPASS_FROZEN_QUEUE

#define SRB_FLAGS_BYPASS_FROZEN_QUEUE   0x00000010

Definition at line 405 of file storport.h.

◆ SRB_FLAGS_BYPASS_LOCKED_QUEUE

#define SRB_FLAGS_BYPASS_LOCKED_QUEUE   0x00080000

Definition at line 419 of file storport.h.

◆ SRB_FLAGS_CLASS_DRIVER_RESERVED

#define SRB_FLAGS_CLASS_DRIVER_RESERVED   0xF0000000

Definition at line 428 of file storport.h.

◆ SRB_FLAGS_DATA_IN

#define SRB_FLAGS_DATA_IN   0x00000040

Definition at line 407 of file storport.h.

◆ SRB_FLAGS_DATA_OUT

#define SRB_FLAGS_DATA_OUT   0x00000080

Definition at line 408 of file storport.h.

◆ SRB_FLAGS_DISABLE_AUTOSENSE

#define SRB_FLAGS_DISABLE_AUTOSENSE   0x00000020

Definition at line 406 of file storport.h.

◆ SRB_FLAGS_DISABLE_DISCONNECT

#define SRB_FLAGS_DISABLE_DISCONNECT   0x00000004

Definition at line 402 of file storport.h.

◆ SRB_FLAGS_DISABLE_SYNCH_TRANSFER

#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER   0x00000008

Definition at line 403 of file storport.h.

◆ SRB_FLAGS_DONT_START_NEXT_PACKET

#define SRB_FLAGS_DONT_START_NEXT_PACKET   0x00800000

Definition at line 425 of file storport.h.

◆ SRB_FLAGS_FREE_SENSE_BUFFER

#define SRB_FLAGS_FREE_SENSE_BUFFER   0x00000400

Definition at line 414 of file storport.h.

◆ SRB_FLAGS_IS_ACTIVE

#define SRB_FLAGS_IS_ACTIVE   0x00010000

Definition at line 416 of file storport.h.

◆ SRB_FLAGS_NO_DATA_TRANSFER

#define SRB_FLAGS_NO_DATA_TRANSFER   0x00000000

Definition at line 409 of file storport.h.

◆ SRB_FLAGS_NO_KEEP_AWAKE

#define SRB_FLAGS_NO_KEEP_AWAKE   0x00100000

Definition at line 421 of file storport.h.

◆ SRB_FLAGS_NO_QUEUE_FREEZE

#define SRB_FLAGS_NO_QUEUE_FREEZE   0x00000100

Definition at line 412 of file storport.h.

◆ SRB_FLAGS_PORT_DRIVER_ALLOCSENSE

#define SRB_FLAGS_PORT_DRIVER_ALLOCSENSE   0x00200000

Definition at line 422 of file storport.h.

◆ SRB_FLAGS_PORT_DRIVER_RESERVED

#define SRB_FLAGS_PORT_DRIVER_RESERVED   0x0F000000

Definition at line 427 of file storport.h.

◆ SRB_FLAGS_PORT_DRIVER_SENSEHASPORT

#define SRB_FLAGS_PORT_DRIVER_SENSEHASPORT   0x00400000

Definition at line 424 of file storport.h.

◆ SRB_FLAGS_QUEUE_ACTION_ENABLE

#define SRB_FLAGS_QUEUE_ACTION_ENABLE   0x00000002

Definition at line 401 of file storport.h.

◆ SRB_FLAGS_SGLIST_FROM_POOL

#define SRB_FLAGS_SGLIST_FROM_POOL   0x00040000

Definition at line 418 of file storport.h.

◆ SRB_FLAGS_UNSPECIFIED_DIRECTION

#define SRB_FLAGS_UNSPECIFIED_DIRECTION   (SRB_FLAGS_DATA_IN | SRB_FLAGS_DATA_OUT)

Definition at line 410 of file storport.h.

◆ SRB_FUNCTION_ABORT_COMMAND

#define SRB_FUNCTION_ABORT_COMMAND   0x10

Definition at line 348 of file storport.h.

◆ SRB_FUNCTION_ATTACH_DEVICE

#define SRB_FUNCTION_ATTACH_DEVICE   0x05

Definition at line 344 of file storport.h.

◆ SRB_FUNCTION_CLAIM_DEVICE

#define SRB_FUNCTION_CLAIM_DEVICE   0x01

Definition at line 340 of file storport.h.

◆ SRB_FUNCTION_DUMP_POINTERS

#define SRB_FUNCTION_DUMP_POINTERS   0x26

Definition at line 364 of file storport.h.

◆ SRB_FUNCTION_EXECUTE_SCSI

#define SRB_FUNCTION_EXECUTE_SCSI   0x00

Definition at line 339 of file storport.h.

◆ SRB_FUNCTION_FLUSH

#define SRB_FUNCTION_FLUSH   0x08

Definition at line 347 of file storport.h.

◆ SRB_FUNCTION_FLUSH_QUEUE

#define SRB_FUNCTION_FLUSH_QUEUE   0x15

Definition at line 353 of file storport.h.

◆ SRB_FUNCTION_IO_CONTROL

#define SRB_FUNCTION_IO_CONTROL   0x02

Definition at line 341 of file storport.h.

◆ SRB_FUNCTION_LINK_TIMEOUT_COMPLETE

#define SRB_FUNCTION_LINK_TIMEOUT_COMPLETE   0x23

Definition at line 361 of file storport.h.

◆ SRB_FUNCTION_LINK_TIMEOUT_OCCURRED

#define SRB_FUNCTION_LINK_TIMEOUT_OCCURRED   0x22

Definition at line 360 of file storport.h.

◆ SRB_FUNCTION_LOCK_QUEUE

#define SRB_FUNCTION_LOCK_QUEUE   0x18

Definition at line 356 of file storport.h.

◆ SRB_FUNCTION_PNP

#define SRB_FUNCTION_PNP   0x25

Definition at line 363 of file storport.h.

◆ SRB_FUNCTION_POWER

#define SRB_FUNCTION_POWER   0x24

Definition at line 362 of file storport.h.

◆ SRB_FUNCTION_RECEIVE_EVENT

#define SRB_FUNCTION_RECEIVE_EVENT   0x03

Definition at line 342 of file storport.h.

◆ SRB_FUNCTION_RELEASE_DEVICE

#define SRB_FUNCTION_RELEASE_DEVICE   0x06

Definition at line 345 of file storport.h.

◆ SRB_FUNCTION_RELEASE_QUEUE

#define SRB_FUNCTION_RELEASE_QUEUE   0x04

Definition at line 343 of file storport.h.

◆ SRB_FUNCTION_RELEASE_RECOVERY

#define SRB_FUNCTION_RELEASE_RECOVERY   0x11

Definition at line 349 of file storport.h.

◆ SRB_FUNCTION_REMOVE_DEVICE

#define SRB_FUNCTION_REMOVE_DEVICE   0x16

Definition at line 354 of file storport.h.

◆ SRB_FUNCTION_RESET_BUS

#define SRB_FUNCTION_RESET_BUS   0x12

Definition at line 350 of file storport.h.

◆ SRB_FUNCTION_RESET_DEVICE

#define SRB_FUNCTION_RESET_DEVICE   0x13

Definition at line 351 of file storport.h.

◆ SRB_FUNCTION_RESET_LOGICAL_UNIT

#define SRB_FUNCTION_RESET_LOGICAL_UNIT   0x20

Definition at line 358 of file storport.h.

◆ SRB_FUNCTION_SET_LINK_TIMEOUT

#define SRB_FUNCTION_SET_LINK_TIMEOUT   0x21

Definition at line 359 of file storport.h.

◆ SRB_FUNCTION_SHUTDOWN

#define SRB_FUNCTION_SHUTDOWN   0x07

Definition at line 346 of file storport.h.

◆ SRB_FUNCTION_TERMINATE_IO

#define SRB_FUNCTION_TERMINATE_IO   0x14

Definition at line 352 of file storport.h.

◆ SRB_FUNCTION_UNLOCK_QUEUE

#define SRB_FUNCTION_UNLOCK_QUEUE   0x19

Definition at line 357 of file storport.h.

◆ SRB_FUNCTION_WMI

#define SRB_FUNCTION_WMI   0x17

Definition at line 355 of file storport.h.

◆ SRB_HEAD_OF_QUEUE_TAG_REQUEST

#define SRB_HEAD_OF_QUEUE_TAG_REQUEST   0x21

Definition at line 431 of file storport.h.

◆ SRB_ORDERED_QUEUE_TAG_REQUEST

#define SRB_ORDERED_QUEUE_TAG_REQUEST   0x22

Definition at line 432 of file storport.h.

◆ SRB_PNP_FLAGS_ADAPTER_REQUEST

#define SRB_PNP_FLAGS_ADAPTER_REQUEST   0x01

Definition at line 436 of file storport.h.

◆ SRB_POWER_FLAGS_ADAPTER_REQUEST

#define SRB_POWER_FLAGS_ADAPTER_REQUEST   0x01

Definition at line 435 of file storport.h.

◆ SRB_SIMPLE_TAG_REQUEST

#define SRB_SIMPLE_TAG_REQUEST   0x20

Definition at line 430 of file storport.h.

◆ SRB_STATUS

Definition at line 398 of file storport.h.

◆ SRB_STATUS_ABORT_FAILED

#define SRB_STATUS_ABORT_FAILED   0x03

Definition at line 370 of file storport.h.

◆ SRB_STATUS_ABORTED

#define SRB_STATUS_ABORTED   0x02

Definition at line 369 of file storport.h.

◆ SRB_STATUS_AUTOSENSE_VALID

#define SRB_STATUS_AUTOSENSE_VALID   0x80

Definition at line 397 of file storport.h.

◆ SRB_STATUS_BAD_FUNCTION

#define SRB_STATUS_BAD_FUNCTION   0x22

Definition at line 391 of file storport.h.

◆ SRB_STATUS_BAD_SRB_BLOCK_LENGTH

#define SRB_STATUS_BAD_SRB_BLOCK_LENGTH   0x15

Definition at line 387 of file storport.h.

◆ SRB_STATUS_BUS_RESET

#define SRB_STATUS_BUS_RESET   0x0E

Definition at line 380 of file storport.h.

◆ SRB_STATUS_BUSY

#define SRB_STATUS_BUSY   0x05

Definition at line 372 of file storport.h.

◆ SRB_STATUS_COMMAND_TIMEOUT

#define SRB_STATUS_COMMAND_TIMEOUT   0x0B

Definition at line 378 of file storport.h.

◆ SRB_STATUS_DATA_OVERRUN

#define SRB_STATUS_DATA_OVERRUN   0x12

Definition at line 384 of file storport.h.

◆ SRB_STATUS_ERROR

#define SRB_STATUS_ERROR   0x04

Definition at line 371 of file storport.h.

◆ SRB_STATUS_ERROR_RECOVERY

#define SRB_STATUS_ERROR_RECOVERY   0x23

Definition at line 392 of file storport.h.

◆ SRB_STATUS_INTERNAL_ERROR

#define SRB_STATUS_INTERNAL_ERROR   0x30

Definition at line 395 of file storport.h.

◆ SRB_STATUS_INVALID_LUN

#define SRB_STATUS_INVALID_LUN   0x20

Definition at line 389 of file storport.h.

◆ SRB_STATUS_INVALID_PATH_ID

#define SRB_STATUS_INVALID_PATH_ID   0x07

Definition at line 374 of file storport.h.

◆ SRB_STATUS_INVALID_REQUEST

#define SRB_STATUS_INVALID_REQUEST   0x06

Definition at line 373 of file storport.h.

◆ SRB_STATUS_INVALID_TARGET_ID

#define SRB_STATUS_INVALID_TARGET_ID   0x21

Definition at line 390 of file storport.h.

◆ SRB_STATUS_LINK_DOWN

#define SRB_STATUS_LINK_DOWN   0x25

Definition at line 394 of file storport.h.

◆ SRB_STATUS_MESSAGE_REJECTED

#define SRB_STATUS_MESSAGE_REJECTED   0x0D

Definition at line 379 of file storport.h.

◆ SRB_STATUS_NO_DEVICE

#define SRB_STATUS_NO_DEVICE   0x08

Definition at line 375 of file storport.h.

◆ SRB_STATUS_NO_HBA

#define SRB_STATUS_NO_HBA   0x11

Definition at line 383 of file storport.h.

◆ SRB_STATUS_NOT_POWERED

#define SRB_STATUS_NOT_POWERED   0x24

Definition at line 393 of file storport.h.

◆ SRB_STATUS_PARITY_ERROR

#define SRB_STATUS_PARITY_ERROR   0x0F

Definition at line 381 of file storport.h.

◆ SRB_STATUS_PENDING

#define SRB_STATUS_PENDING   0x00

Definition at line 367 of file storport.h.

◆ SRB_STATUS_PHASE_SEQUENCE_FAILURE

#define SRB_STATUS_PHASE_SEQUENCE_FAILURE   0x14

Definition at line 386 of file storport.h.

◆ SRB_STATUS_QUEUE_FROZEN

#define SRB_STATUS_QUEUE_FROZEN   0x40

Definition at line 396 of file storport.h.

◆ SRB_STATUS_REQUEST_FLUSHED

#define SRB_STATUS_REQUEST_FLUSHED   0x16

Definition at line 388 of file storport.h.

◆ SRB_STATUS_REQUEST_SENSE_FAILED

#define SRB_STATUS_REQUEST_SENSE_FAILED   0x10

Definition at line 382 of file storport.h.

◆ SRB_STATUS_SELECTION_TIMEOUT

#define SRB_STATUS_SELECTION_TIMEOUT   0x0A

Definition at line 377 of file storport.h.

◆ SRB_STATUS_SUCCESS

#define SRB_STATUS_SUCCESS   0x01

Definition at line 368 of file storport.h.

◆ SRB_STATUS_TIMEOUT

#define SRB_STATUS_TIMEOUT   0x09

Definition at line 376 of file storport.h.

◆ SRB_STATUS_UNEXPECTED_BUS_FREE

#define SRB_STATUS_UNEXPECTED_BUS_FREE   0x13

Definition at line 385 of file storport.h.

◆ SRB_WMI_FLAGS_ADAPTER_REQUEST

#define SRB_WMI_FLAGS_ADAPTER_REQUEST   0x01

Definition at line 434 of file storport.h.

◆ STOR_MAP_ALL_BUFFERS

#define STOR_MAP_ALL_BUFFERS   (1)

Definition at line 439 of file storport.h.

◆ STOR_MAP_NO_BUFFERS

#define STOR_MAP_NO_BUFFERS   (0)

Definition at line 438 of file storport.h.

◆ STOR_MAP_NON_READ_WRITE_BUFFERS

#define STOR_MAP_NON_READ_WRITE_BUFFERS   (2)

Definition at line 440 of file storport.h.

◆ STOR_STATUS_ACCESS_DENIED

#define STOR_STATUS_ACCESS_DENIED   (0xC1000005L)

Definition at line 448 of file storport.h.

◆ STOR_STATUS_BUFFER_TOO_SMALL

#define STOR_STATUS_BUFFER_TOO_SMALL   (0xC1000004L)

Definition at line 447 of file storport.h.

◆ STOR_STATUS_BUSY

#define STOR_STATUS_BUSY   (0xC100000CL)

Definition at line 455 of file storport.h.

◆ STOR_STATUS_INSUFFICIENT_RESOURCES

#define STOR_STATUS_INSUFFICIENT_RESOURCES   (0xC1000003L)

Definition at line 446 of file storport.h.

◆ STOR_STATUS_INVALID_BUFFER_SIZE

#define STOR_STATUS_INVALID_BUFFER_SIZE   (0xC100000AL)

Definition at line 453 of file storport.h.

◆ STOR_STATUS_INVALID_DEVICE_REQUEST

#define STOR_STATUS_INVALID_DEVICE_REQUEST   (0xC1000007L)

Definition at line 450 of file storport.h.

◆ STOR_STATUS_INVALID_DEVICE_STATE

#define STOR_STATUS_INVALID_DEVICE_STATE   (0xC1000009L)

Definition at line 452 of file storport.h.

◆ STOR_STATUS_INVALID_IRQL

#define STOR_STATUS_INVALID_IRQL   (0xC1000008L)

Definition at line 451 of file storport.h.

◆ STOR_STATUS_INVALID_PARAMETER

#define STOR_STATUS_INVALID_PARAMETER   (0xC1000006L)

Definition at line 449 of file storport.h.

◆ STOR_STATUS_NOT_IMPLEMENTED

#define STOR_STATUS_NOT_IMPLEMENTED   (0xC1000002L)

Definition at line 445 of file storport.h.

◆ STOR_STATUS_SUCCESS

#define STOR_STATUS_SUCCESS   (0x00000000L)

Definition at line 443 of file storport.h.

◆ STOR_STATUS_UNSUCCESSFUL

#define STOR_STATUS_UNSUCCESSFUL   (0xC1000001L)

Definition at line 444 of file storport.h.

◆ STOR_STATUS_UNSUPPORTED_VERSION

#define STOR_STATUS_UNSUPPORTED_VERSION   (0xC100000BL)

Definition at line 454 of file storport.h.

◆ STORPORT_API

#define STORPORT_API   DECLSPEC_IMPORT

Definition at line 75 of file storport.h.

◆ StorPortCopyMemory

#define StorPortCopyMemory (   Destination,
  Source,
  Length 
)    memcpy((Destination),(Source),(Length))

Definition at line 2457 of file storport.h.

◆ VPD_DEVICE_IDENTIFIERS

#define VPD_DEVICE_IDENTIFIERS   0x83

Definition at line 459 of file storport.h.

◆ VPD_EXTENDED_INQUIRY_DATA

#define VPD_EXTENDED_INQUIRY_DATA   0x86

Definition at line 463 of file storport.h.

◆ VPD_MEDIA_SERIAL_NUMBER

#define VPD_MEDIA_SERIAL_NUMBER   0x84

Definition at line 460 of file storport.h.

◆ VPD_MODE_PAGE_POLICY

#define VPD_MODE_PAGE_POLICY   0x87

Definition at line 464 of file storport.h.

◆ VPD_NETWORK_MANAGEMENT_ADDRESSES

#define VPD_NETWORK_MANAGEMENT_ADDRESSES   0x85

Definition at line 462 of file storport.h.

◆ VPD_SCSI_PORTS

#define VPD_SCSI_PORTS   0x88

Definition at line 465 of file storport.h.

◆ VPD_SERIAL_NUMBER

#define VPD_SERIAL_NUMBER   0x80

Definition at line 458 of file storport.h.

◆ VPD_SOFTWARE_INTERFACE_IDENTIFIERS

#define VPD_SOFTWARE_INTERFACE_IDENTIFIERS   0x84

Definition at line 461 of file storport.h.

◆ VPD_SUPPORTED_PAGES

#define VPD_SUPPORTED_PAGES   0x00

Definition at line 457 of file storport.h.

◆ WRITE_ONCE_READ_MULTIPLE_DEVICE

#define WRITE_ONCE_READ_MULTIPLE_DEVICE   0x04

Definition at line 82 of file storport.h.

Typedef Documentation

◆ ACCESS_RANGE

◆ CDB

typedef union _CDB CDB

◆ Context

typedef _In_ PVOID Context

Definition at line 2325 of file storport.h.

◆ DPC_BUFFER

◆ EIGHT_BYTE

typedef union _EIGHT_BYTE EIGHT_BYTE

◆ FOUR_BYTE

typedef union _FOUR_BYTE FOUR_BYTE

◆ GETSGSTATUS

◆ HW_INITIALIZATION_DATA

◆ INQUIRYDATA

◆ INTERRUPT_SYNCHRONIZATION_MODE

◆ LUN_LIST

◆ MEMORY_REGION

◆ MESSAGE_INTERRUPT_INFORMATION

◆ MODE_PARAMETER_BLOCK

◆ MODE_PARAMETER_HEADER

◆ MODE_PARAMETER_HEADER10

◆ PACCESS_RANGE

◆ PCDB

typedef union _CDB * PCDB

◆ PEIGHT_BYTE

typedef union _EIGHT_BYTE * PEIGHT_BYTE

◆ PERF_CONFIGURATION_DATA

◆ PFOUR_BYTE

typedef union _FOUR_BYTE * PFOUR_BYTE

◆ PGETSGSTATUS

◆ PHW_ADAPTER_CONTROL

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

Definition at line 2302 of file storport.h.

◆ PHW_ADAPTER_STATE

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

Definition at line 2295 of file storport.h.

◆ PHW_BUILDIO

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

Definition at line 2246 of file storport.h.

◆ PHW_DMA_STARTED

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

Definition at line 2274 of file storport.h.

◆ PHW_DPC_ROUTINE

typedef VOID(* PHW_DPC_ROUTINE) (_In_ PSTOR_DPC Dpc, _In_ PVOID HwDeviceExtension, _In_ PVOID SystemArgument1, _In_ PVOID SystemArgument2)

Definition at line 2314 of file storport.h.

◆ PHW_FIND_ADAPTER

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)

Definition at line 2279 of file storport.h.

◆ PHW_INITIALIZATION_DATA

◆ PHW_INITIALIZE

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

Definition at line 2241 of file storport.h.

◆ PHW_INTERRUPT

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

Definition at line 2258 of file storport.h.

◆ PHW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE

typedef BOOLEAN(NTAPI * PHW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE) (_In_ PVOID DeviceExtension, _In_ ULONG MessageId)

Definition at line 2067 of file storport.h.

◆ PHW_PASSIVE_INITIALIZE_ROUTINE

typedef BOOLEAN(* PHW_PASSIVE_INITIALIZE_ROUTINE) (_In_ PVOID DeviceExtension)

Definition at line 2309 of file storport.h.

◆ PHW_RESET_BUS

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

Definition at line 2289 of file storport.h.

◆ PHW_STARTIO

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

Definition at line 2252 of file storport.h.

◆ PHW_TIMER

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

Definition at line 2263 of file storport.h.

◆ PHW_TIMER_EX

typedef VOID(NTAPI * PHW_TIMER_EX) (_In_ PVOID DeviceExtension, _In_opt_ PVOID Context)

Definition at line 2268 of file storport.h.

◆ PINQUIRYDATA

◆ PLUN_LIST

◆ PMEMORY_REGION

◆ PMESSAGE_INTERRUPT_INFORMATION

◆ PMODE_PARAMETER_BLOCK

◆ PMODE_PARAMETER_HEADER

◆ PMODE_PARAMETER_HEADER10

◆ PORT_CONFIGURATION_INFORMATION

◆ PPERF_CONFIGURATION_DATA

◆ PPORT_CONFIGURATION_INFORMATION

◆ PpostScaterGatherExecute

Definition at line 2330 of file storport.h.

◆ PREAD_CAPACITY_DATA

◆ PREAD_CAPACITY_DATA_EX

◆ PSCSI_ADAPTER_CONTROL_STATUS

◆ PSCSI_ADAPTER_CONTROL_TYPE

◆ PSCSI_NOTIFICATION_TYPE

◆ PSCSI_PNP_REQUEST_BLOCK

◆ PSCSI_POWER_REQUEST_BLOCK

◆ PSCSI_REQUEST_BLOCK

◆ PSCSI_WMI_REQUEST_BLOCK

◆ PSENSE_DATA

◆ PSTARTIO_PERFORMANCE_PARAMETERS

◆ PSTOR_DEVICE_CAPABILITIES

◆ PSTOR_DEVICE_POWER_STATE

◆ PSTOR_DPC

◆ PSTOR_LOCK_HANDLE

◆ PSTOR_LOG_EVENT_DETAILS

◆ PSTOR_PNP_ACTION

◆ PSTOR_POWER_ACTION

◆ PSTOR_SCATTER_GATHER_ELEMENT

◆ PSTOR_SCATTER_GATHER_LIST

◆ PSTOR_SYNCHRONIZED_ACCESS

typedef STOR_SYNCHRONIZED_ACCESS* PSTOR_SYNCHRONIZED_ACCESS

Definition at line 2327 of file storport.h.

◆ PSTORPORT_EXTENDED_FUNCTIONS

◆ PSTORPORT_FUNCTION_CODE

◆ PStorPortAllocatePool

typedef PVOID(NTAPI * PStorPortAllocatePool) (_In_ ULONG NumberOfBytes, _In_ ULONG Tag, _In_ PVOID HwDeviceExtension, _Out_ PVOID *PMdl)

Definition at line 2372 of file storport.h.

◆ PStorPortBuildScatterGatherList

typedef GETSGSTATUS(NTAPI * PStorPortBuildScatterGatherList) (_In_ PVOID HwDeviceExtension, _In_ PVOID Mdl, _In_ PVOID CurrentVa, _In_ ULONG Length, _In_ PpostScaterGatherExecute ExecutionRoutine, _In_ PVOID Context, _In_ BOOLEAN WriteToDevice, _Inout_ PVOID ScatterGatherBuffer, _In_ ULONG ScatterGatherBufferLength)

Definition at line 2352 of file storport.h.

◆ PStorPortFreePool

typedef VOID(NTAPI * PStorPortFreePool) (_In_ PVOID PMemory, _In_ PVOID HwDeviceExtension, _In_opt_ PVOID PMdl)

Definition at line 2365 of file storport.h.

◆ PStorPortGetMessageInterruptInformation

typedef BOOLEAN(NTAPI * PStorPortGetMessageInterruptInformation) (_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _Out_ PMESSAGE_INTERRUPT_INFORMATION InterruptInfo)

Definition at line 2338 of file storport.h.

◆ PStorPortGetSystemAddress

typedef PVOID(NTAPI * PStorPortGetSystemAddress) (_In_ PSCSI_REQUEST_BLOCK Srb)

Definition at line 2380 of file storport.h.

◆ PStorPortPutScatterGatherList

typedef VOID(NTAPI * PStorPortPutScatterGatherList) (_In_ PVOID HwDeviceExtension, _In_ PSTOR_SCATTER_GATHER_LIST ScatterGatherList, _In_ BOOLEAN WriteToDevice)

Definition at line 2345 of file storport.h.

◆ PTWO_BYTE

typedef union _TWO_BYTE * PTWO_BYTE

◆ PVPD_ASSOCIATION

◆ PVPD_CODE_SET

◆ PVPD_IDENTIFICATION_DESCRIPTOR

◆ PVPD_IDENTIFICATION_PAGE

◆ PVPD_IDENTIFIER_TYPE

◆ PVPD_MEDIA_SERIAL_NUMBER_PAGE

◆ PVPD_SERIAL_NUMBER_PAGE

◆ PVPD_SUPPORTED_PAGES_PAGE

◆ READ_CAPACITY_DATA

◆ READ_CAPACITY_DATA_EX

◆ SCSI_ADAPTER_CONTROL_STATUS

◆ SCSI_ADAPTER_CONTROL_TYPE

◆ SCSI_NOTIFICATION_TYPE

◆ SCSI_PNP_REQUEST_BLOCK

◆ SCSI_POWER_REQUEST_BLOCK

◆ SCSI_REQUEST_BLOCK

◆ SCSI_WMI_REQUEST_BLOCK

◆ SENSE_DATA

◆ STARTIO_PERFORMANCE_PARAMETERS

◆ STOR_DEVICE_CAPABILITIES

◆ STOR_DEVICE_POWER_STATE

◆ STOR_DMA_WIDTH

◆ STOR_DPC

◆ STOR_EVENT_ASSOCIATION_ENUM

◆ STOR_LOCK_HANDLE

◆ STOR_LOG_EVENT_DETAILS

◆ STOR_PHYSICAL_ADDRESS

Definition at line 2050 of file storport.h.

◆ STOR_PNP_ACTION

◆ STOR_POWER_ACTION

◆ STOR_SCATTER_GATHER_ELEMENT

◆ STOR_SCATTER_GATHER_LIST

◆ STOR_SPINLOCK

◆ STOR_SYNCHRONIZATION_MODEL

◆ STORPORT_EXTENDED_FUNCTIONS

◆ STORPORT_FUNCTION_CODE

◆ TWO_BYTE

typedef union _TWO_BYTE TWO_BYTE

◆ VPD_ASSOCIATION

◆ VPD_CODE_SET

◆ VPD_IDENTIFICATION_DESCRIPTOR

◆ VPD_IDENTIFICATION_PAGE

◆ VPD_IDENTIFIER_TYPE

◆ VPD_MEDIA_SERIAL_NUMBER_PAGE

◆ VPD_SERIAL_NUMBER_PAGE

◆ VPD_SUPPORTED_PAGES_PAGE

Enumeration Type Documentation

◆ _GETSGSTATUS

Enumerator
SG_ALLOCATED 
SG_BUFFER_TOO_SMALL 

Definition at line 667 of file storport.h.

668{
669 SG_ALLOCATED = 0,
@ SG_BUFFER_TOO_SMALL
Definition: storport.h:670
@ SG_ALLOCATED
Definition: storport.h:669
enum _GETSGSTATUS * PGETSGSTATUS
enum _GETSGSTATUS GETSGSTATUS

◆ _INTERRUPT_SYNCHRONIZATION_MODE

Enumerator
InterruptSupportNone 
InterruptSynchronizeAll 
InterruptSynchronizePerMessage 

Definition at line 490 of file storport.h.

491{
enum _INTERRUPT_SYNCHRONIZATION_MODE INTERRUPT_SYNCHRONIZATION_MODE
@ InterruptSynchronizePerMessage
Definition: storport.h:494
@ InterruptSynchronizeAll
Definition: storport.h:493
@ InterruptSupportNone
Definition: storport.h:492

◆ _SCSI_ADAPTER_CONTROL_STATUS

Enumerator
ScsiAdapterControlSuccess 
ScsiAdapterControlUnsuccessful 
ScsiAdapterControlSuccess 
ScsiAdapterControlUnsuccessful 
ScsiAdapterControlSuccess 
ScsiAdapterControlUnsuccessful 

Definition at line 523 of file storport.h.

524{
@ ScsiAdapterControlSuccess
Definition: storport.h:525
@ ScsiAdapterControlUnsuccessful
Definition: storport.h:526
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 512 of file storport.h.

513{
@ ScsiRestartAdapter
Definition: storport.h:516
@ ScsiQuerySupportedControlTypes
Definition: storport.h:514
@ ScsiAdapterControlMax
Definition: storport.h:519
@ ScsiSetBootConfig
Definition: storport.h:517
@ ScsiStopAdapter
Definition: storport.h:515
@ MakeAdapterControlTypeSizeOfUlong
Definition: storport.h:520
@ ScsiSetRunningConfig
Definition: storport.h:518
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 529 of file storport.h.

530{
539 WMIEvent,
541 LinkUp,
542 LinkDown,
549 IssueDpc,
enum _SCSI_NOTIFICATION_TYPE * PSCSI_NOTIFICATION_TYPE
enum _SCSI_NOTIFICATION_TYPE SCSI_NOTIFICATION_TYPE
@ InitializeDpc
Definition: storport.h:548
@ AcquireSpinLock
Definition: storport.h:550
@ ResetDetected
Definition: storport.h:534
@ _obsolete2
Definition: storport.h:536
@ WMIEvent
Definition: storport.h:539
@ QueryTickCount
Definition: storport.h:543
@ _obsolete1
Definition: storport.h:535
@ RequestTimerCall
Definition: storport.h:537
@ IssueDpc
Definition: storport.h:549
@ RequestComplete
Definition: storport.h:531
@ ReleaseSpinLock
Definition: storport.h:551
@ BufferOverrunDetected
Definition: storport.h:544
@ WMIReregister
Definition: storport.h:540
@ LinkUp
Definition: storport.h:541
@ NextRequest
Definition: storport.h:532
@ BusChangeDetected
Definition: storport.h:538
@ NextLuRequest
Definition: storport.h:533
@ TraceNotification
Definition: storport.h:545
@ LinkDown
Definition: storport.h:542
@ GetExtendedFunctionTable
Definition: storport.h:546
@ EnablePassiveInitialization
Definition: storport.h:547

◆ _STOR_DEVICE_POWER_STATE

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

Definition at line 554 of file storport.h.

555{
enum _STOR_DEVICE_POWER_STATE * PSTOR_DEVICE_POWER_STATE
enum _STOR_DEVICE_POWER_STATE STOR_DEVICE_POWER_STATE
@ StorPowerDeviceMaximum
Definition: storport.h:561
@ StorPowerDeviceD3
Definition: storport.h:560
@ StorPowerDeviceD2
Definition: storport.h:559
@ StorPowerDeviceUnspecified
Definition: storport.h:556
@ StorPowerDeviceD1
Definition: storport.h:558
@ StorPowerDeviceD0
Definition: storport.h:557

◆ _STOR_DMA_WIDTH

Enumerator
DmaUnknown 
Dma32Bit 
Dma64BitScatterGather 
Dma64Bit 

Definition at line 497 of file storport.h.

498{
500 Dma32Bit,
@ Dma64BitScatterGather
Definition: storport.h:501
@ DmaUnknown
Definition: storport.h:499
@ Dma32Bit
Definition: storport.h:500
@ Dma64Bit
Definition: storport.h:502
enum _STOR_DMA_WIDTH STOR_DMA_WIDTH

◆ _STOR_EVENT_ASSOCIATION_ENUM

Enumerator
StorEventAdapterAssociation 
StorEventLunAssociation 
StorEventTargetAssociation 
StorEventInvalidAssociation 

Definition at line 659 of file storport.h.

660{
enum _STOR_EVENT_ASSOCIATION_ENUM STOR_EVENT_ASSOCIATION_ENUM
@ StorEventTargetAssociation
Definition: storport.h:663
@ StorEventInvalidAssociation
Definition: storport.h:664
@ StorEventAdapterAssociation
Definition: storport.h:661
@ StorEventLunAssociation
Definition: storport.h:662

◆ _STOR_PNP_ACTION

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

Definition at line 576 of file storport.h.

577{
578 StorStartDevice = 0x0,
579 StorRemoveDevice = 0x2,
580 StorStopDevice = 0x4,
enum _STOR_PNP_ACTION STOR_PNP_ACTION
enum _STOR_PNP_ACTION * PSTOR_PNP_ACTION
@ StorRemoveDevice
Definition: storport.h:579
@ StorQueryCapabilities
Definition: storport.h:581
@ StorQueryResourceRequirements
Definition: storport.h:582
@ StorFilterResourceRequirements
Definition: storport.h:583
@ StorStopDevice
Definition: storport.h:580
@ StorStartDevice
Definition: storport.h:578
@ StorSurpriseRemoval
Definition: storport.h:584

◆ _STOR_POWER_ACTION

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

Definition at line 564 of file storport.h.

565{
@ StorPowerActionWarmEject
Definition: storport.h:573
@ StorPowerActionShutdown
Definition: storport.h:570
@ StorPowerActionReserved
Definition: storport.h:567
@ StorPowerActionNone
Definition: storport.h:566
@ StorPowerActionShutdownReset
Definition: storport.h:571
@ StorPowerActionSleep
Definition: storport.h:568
@ StorPowerActionHibernate
Definition: storport.h:569
@ StorPowerActionShutdownOff
Definition: storport.h:572
enum _STOR_POWER_ACTION * PSTOR_POWER_ACTION
enum _STOR_POWER_ACTION STOR_POWER_ACTION

◆ _STOR_SPINLOCK

Enumerator
DpcLock 
StartIoLock 
InterruptLock 

Definition at line 505 of file storport.h.

506{
507 DpcLock = 1,
@ StartIoLock
Definition: storport.h:508
@ InterruptLock
Definition: storport.h:509
@ DpcLock
Definition: storport.h:507
enum _STOR_SPINLOCK STOR_SPINLOCK

◆ _STOR_SYNCHRONIZATION_MODEL

Enumerator
StorSynchronizeHalfDuplex 
StorSynchronizeFullDuplex 

Definition at line 484 of file storport.h.

485{
@ StorSynchronizeFullDuplex
Definition: storport.h:487
@ StorSynchronizeHalfDuplex
Definition: storport.h:486
enum _STOR_SYNCHRONIZATION_MODEL STOR_SYNCHRONIZATION_MODEL

◆ _STORPORT_FUNCTION_CODE

Enumerator
ExtFunctionAllocatePool 
ExtFunctionFreePool 
ExtFunctionAllocateMdl 
ExtFunctionFreeMdl 
ExtFunctionBuildMdlForNonPagedPool 
ExtFunctionGetSystemAddress 
ExtFunctionGetOriginalMdl 
ExtFunctionCompleteServiceIrp 
ExtFunctionGetDeviceObjects 
ExtFunctionBuildScatterGatherList 
ExtFunctionPutScatterGatherList 
ExtFunctionAcquireMSISpinLock 
ExtFunctionReleaseMSISpinLock 
ExtFunctionGetMessageInterruptInformation 
ExtFunctionInitializePerformanceOptimizations 
ExtFunctionGetStartIoPerformanceParameters 
ExtFunctionLogSystemEvent 
ExtFunctionGetCurrentProcessorNumber 
ExtFunctionGetActiveGroupCount 
ExtFunctionGetGroupAffinity 
ExtFunctionGetActiveNodeCount 
ExtFunctionGetNodeAffinity 
ExtFunctionGetHighestNodeNumber 
ExtFunctionGetLogicalProcessorRelationship 
ExtFunctionAllocateContiguousMemorySpecifyCacheNode 
ExtFunctionFreeContiguousMemorySpecifyCache 
ExtFunctionSetPowerSettingNotificationGuids 
ExtFunctionInvokeAcpiMethod 
ExtFunctionGetRequestInfo 
ExtFunctionInitializeWorker 
ExtFunctionQueueWorkItem 
ExtFunctionFreeWorker 
ExtFunctionInitializeTimer 
ExtFunctionRequestTimer 
ExtFunctionFreeTimer 

Definition at line 617 of file storport.h.

618{
636#if (NTDDI_VERSION >= NTDDI_WIN7)
646#endif
647 /* Pinned value, as the codes above are only declared on newer targets */
@ ExtFunctionFreeContiguousMemorySpecifyCache
Definition: storport.h:645
@ ExtFunctionGetGroupAffinity
Definition: storport.h:639
@ ExtFunctionFreeWorker
Definition: storport.h:653
@ ExtFunctionGetNodeAffinity
Definition: storport.h:641
@ ExtFunctionCompleteServiceIrp
Definition: storport.h:626
@ ExtFunctionAllocateMdl
Definition: storport.h:621
@ ExtFunctionInitializeTimer
Definition: storport.h:654
@ ExtFunctionRequestTimer
Definition: storport.h:655
@ ExtFunctionAllocateContiguousMemorySpecifyCacheNode
Definition: storport.h:644
@ ExtFunctionInvokeAcpiMethod
Definition: storport.h:649
@ ExtFunctionGetOriginalMdl
Definition: storport.h:625
@ ExtFunctionSetPowerSettingNotificationGuids
Definition: storport.h:648
@ ExtFunctionFreePool
Definition: storport.h:620
@ ExtFunctionGetDeviceObjects
Definition: storport.h:627
@ ExtFunctionAcquireMSISpinLock
Definition: storport.h:630
@ ExtFunctionFreeTimer
Definition: storport.h:656
@ ExtFunctionInitializePerformanceOptimizations
Definition: storport.h:633
@ ExtFunctionGetLogicalProcessorRelationship
Definition: storport.h:643
@ ExtFunctionGetMessageInterruptInformation
Definition: storport.h:632
@ ExtFunctionGetSystemAddress
Definition: storport.h:624
@ ExtFunctionGetStartIoPerformanceParameters
Definition: storport.h:634
@ ExtFunctionLogSystemEvent
Definition: storport.h:635
@ ExtFunctionGetRequestInfo
Definition: storport.h:650
@ ExtFunctionBuildScatterGatherList
Definition: storport.h:628
@ ExtFunctionPutScatterGatherList
Definition: storport.h:629
@ ExtFunctionReleaseMSISpinLock
Definition: storport.h:631
@ ExtFunctionFreeMdl
Definition: storport.h:622
@ ExtFunctionQueueWorkItem
Definition: storport.h:652
@ ExtFunctionGetActiveGroupCount
Definition: storport.h:638
@ ExtFunctionBuildMdlForNonPagedPool
Definition: storport.h:623
@ ExtFunctionGetCurrentProcessorNumber
Definition: storport.h:637
@ ExtFunctionGetHighestNodeNumber
Definition: storport.h:642
@ ExtFunctionAllocatePool
Definition: storport.h:619
@ ExtFunctionInitializeWorker
Definition: storport.h:651
@ ExtFunctionGetActiveNodeCount
Definition: storport.h:640
enum _STORPORT_FUNCTION_CODE STORPORT_FUNCTION_CODE
enum _STORPORT_FUNCTION_CODE * PSTORPORT_FUNCTION_CODE

◆ _VPD_ASSOCIATION

Enumerator
VpdAssocDevice 
VpdAssocPort 
VpdAssocTarget 
VpdAssocReserved1 
VpdAssocReserved2 
VpdAssocDevice 
VpdAssocPort 
VpdAssocTarget 
VpdAssocReserved1 
VpdAssocReserved2 

Definition at line 595 of file storport.h.

596{
597 VpdAssocDevice = 0,
598 VpdAssocPort = 1,
599 VpdAssocTarget = 2,
@ VpdAssocPort
Definition: storport.h:598
@ VpdAssocTarget
Definition: storport.h:599
@ VpdAssocReserved1
Definition: storport.h:600
@ VpdAssocDevice
Definition: storport.h:597
@ VpdAssocReserved2
Definition: storport.h:601
enum _VPD_ASSOCIATION * PVPD_ASSOCIATION
enum _VPD_ASSOCIATION VPD_ASSOCIATION

◆ _VPD_CODE_SET

Enumerator
VpdCodeSetReserved 
VpdCodeSetBinary 
VpdCodeSetAscii 
VpdCodeSetUTF8 
VpdCodeSetReserved 
VpdCodeSetBinary 
VpdCodeSetAscii 
VpdCodeSetUTF8 

Definition at line 587 of file storport.h.

588{
591 VpdCodeSetAscii = 2,
enum _VPD_CODE_SET VPD_CODE_SET
enum _VPD_CODE_SET * PVPD_CODE_SET
@ VpdCodeSetBinary
Definition: storport.h:590
@ VpdCodeSetReserved
Definition: storport.h:589
@ VpdCodeSetAscii
Definition: storport.h:591
@ VpdCodeSetUTF8
Definition: storport.h:592

◆ _VPD_IDENTIFIER_TYPE

Enumerator
VpdIdentifierTypeVendorSpecific 
VpdIdentifierTypeVendorId 
VpdIdentifierTypeEUI64 
VpdIdentifierTypeFCPHName 
VpdIdentifierTypePortRelative 
VpdIdentifierTypeTargetPortGroup 
VpdIdentifierTypeLogicalUnitGroup 
VpdIdentifierTypeMD5LogicalUnitId 
VpdIdentifierTypeSCSINameString 
VpdIdentifierTypeVendorSpecific 
VpdIdentifierTypeVendorId 
VpdIdentifierTypeEUI64 
VpdIdentifierTypeFCPHName 
VpdIdentifierTypePortRelative 
VpdIdentifierTypeTargetPortGroup 
VpdIdentifierTypeLogicalUnitGroup 
VpdIdentifierTypeMD5LogicalUnitId 
VpdIdentifierTypeSCSINameString 

Definition at line 604 of file storport.h.

605{
enum _VPD_IDENTIFIER_TYPE VPD_IDENTIFIER_TYPE
@ VpdIdentifierTypeSCSINameString
Definition: storport.h:614
@ VpdIdentifierTypeVendorId
Definition: storport.h:607
@ VpdIdentifierTypeMD5LogicalUnitId
Definition: storport.h:613
@ VpdIdentifierTypeTargetPortGroup
Definition: storport.h:611
@ VpdIdentifierTypeLogicalUnitGroup
Definition: storport.h:612
@ VpdIdentifierTypeFCPHName
Definition: storport.h:609
@ VpdIdentifierTypePortRelative
Definition: storport.h:610
@ VpdIdentifierTypeEUI64
Definition: storport.h:608
@ VpdIdentifierTypeVendorSpecific
Definition: storport.h:606
enum _VPD_IDENTIFIER_TYPE * PVPD_IDENTIFIER_TYPE

Function Documentation

◆ BOOLEAN()

typedef BOOLEAN ( NTAPI  STOR_SYNCHRONIZED_ACCESS)

◆ StorPortAcquireMSISpinLock()

FORCEINLINE ULONG StorPortAcquireMSISpinLock ( _In_ PVOID  HwDeviceExtension,
_In_ ULONG  MessageId,
_In_ PULONG  OldIrql 
)

Definition at line 3193 of file storport.h.

3197{
3199 HwDeviceExtension,
3200 MessageId,
3201 OldIrql);
3202}
STORPORT_API ULONG StorPortExtendedFunction(_In_ STORPORT_FUNCTION_CODE FunctionCode, _In_ PVOID HwDeviceExtension,...)
Definition: storport.c:695
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Definition: kefuncs.h:778

◆ StorPortAcquireSpinLock()

FORCEINLINE VOID StorPortAcquireSpinLock ( _In_ PVOID  DeviceExtension,
_In_ STOR_SPINLOCK  SpinLock,
_In_ PVOID  LockContext,
_Inout_ PSTOR_LOCK_HANDLE  LockHandle 
)

Definition at line 3006 of file storport.h.

3011{
3013 DeviceExtension,
3014 SpinLock,
3015 LockContext,
3016 LockHandle);
3017}
STORPORT_API VOID __cdecl StorPortNotification(_In_ SCSI_NOTIFICATION_TYPE NotificationType, _In_ PVOID HwDeviceExtension,...)
Definition: storport.c:1368
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
Definition: wdfsync.h:228
*LockHandle LockHandle _Out_ PKLOCK_QUEUE_HANDLE LockHandle
Definition: kefuncs.h:717

Referenced by AhciCommandCompletionDpcRoutine(), AhciHwResetBus(), and AhciProcessIO().

◆ StorPortAllocateMdl()

FORCEINLINE ULONG StorPortAllocateMdl ( _In_ PVOID  HwDeviceExtension,
_In_ PVOID  BufferPointer,
_In_ ULONG  NumberOfBytes,
_Out_ PVOID *  Mdl 
)

Definition at line 3066 of file storport.h.

3071{
3073 HwDeviceExtension,
3074 BufferPointer,
3076 Mdl);
3077}
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:1036

◆ StorPortAllocatePool()

FORCEINLINE ULONG StorPortAllocatePool ( _In_ PVOID  HwDeviceExtension,
_In_ ULONG  NumberOfBytes,
_In_ ULONG  Tag,
_Out_ PVOID *  BufferPointer 
)

Definition at line 3039 of file storport.h.

3045{
3047 HwDeviceExtension,
3049 Tag,
3050 BufferPointer);
3051}
_Must_inspect_result_ _In_ UCXENDPOINT _In_ PVOID Tag
Definition: ucxendpoint.h:325

◆ StorPortAllocateRegistryBuffer()

STORPORT_API PUCHAR NTAPI StorPortAllocateRegistryBuffer ( _In_ PVOID  HwDeviceExtension,
_In_ PULONG  Length 
)

Definition at line 525 of file storport.c.

528{
529 DPRINT1("StorPortAllocateRegistryBuffer()\n");
531 return NULL;
532}
#define DPRINT1
Definition: precomp.h:8
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15
#define NULL
Definition: types.h:112

◆ StorPortBuildMdlForNonPagedPool()

FORCEINLINE ULONG StorPortBuildMdlForNonPagedPool ( _In_ PVOID  HwDeviceExtension,
_Inout_ PVOID  Mdl 
)

Definition at line 3092 of file storport.h.

3095{
3097 HwDeviceExtension,
3098 Mdl);
3099}

◆ StorPortBuildScatterGatherList()

FORCEINLINE ULONG StorPortBuildScatterGatherList ( _In_ PVOID  HwDeviceExtension,
_In_ PVOID  Mdl,
_In_ PVOID  CurrentVa,
_In_ ULONG  Length,
_In_ PpostScaterGatherExecute  ExecutionRoutine,
_In_ PVOID  Context,
_In_ BOOLEAN  WriteToDevice,
_Inout_ PVOID  ScatterGatherBuffer,
_In_ ULONG  ScatterGatherBufferLength 
)

Definition at line 3155 of file storport.h.

3165{
3167 HwDeviceExtension,
3168 Mdl,
3169 CurrentVa,
3170 Length,
3172 Context,
3174 ScatterGatherBuffer,
3175 ScatterGatherBufferLength);
3176}
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID _In_ ULONG _In_ BOOLEAN WriteToDevice
Definition: cdrom.h:992
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
Definition: kse.h:81
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
_In_ PDEVICE_OBJECT _In_ ULONG _In_ PDRIVER_CONTROL ExecutionRoutine
Definition: iofuncs.h:1399

◆ StorPortBusy()

STORPORT_API BOOLEAN NTAPI StorPortBusy ( _In_ PVOID  HwDeviceExtension,
_In_ ULONG  RequestsToComplete 
)

Definition at line 541 of file storport.c.

544{
545 DPRINT1("StorPortBuzy()\n");
547 return FALSE;
548}
#define FALSE
Definition: types.h:117

◆ StorPortCompleteRequest()

STORPORT_API VOID NTAPI StorPortCompleteRequest ( _In_ PVOID  HwDeviceExtension,
_In_ UCHAR  PathId,
_In_ UCHAR  TargetId,
_In_ UCHAR  Lun,
_In_ UCHAR  SrbStatus 
)

Definition at line 557 of file storport.c.

563{
564 DPRINT1("StorPortCompleteRequest()\n");
566}

◆ StorPortCompleteServiceIrp()

FORCEINLINE ULONG StorPortCompleteServiceIrp ( _In_ PVOID  HwDeviceExtension,
_In_ PVOID  Irp 
)

Definition at line 3129 of file storport.h.

3132{
3134 HwDeviceExtension,
3135 Irp);
3136}
_In_ PIRP Irp
Definition: kse.h:79

◆ StorPortConvertPhysicalAddressToUlong64()

STORPORT_API ULONG64 NTAPI StorPortConvertPhysicalAddressToUlong64 ( _In_ STOR_PHYSICAL_ADDRESS  Address)

◆ StorPortConvertUlong64ToPhysicalAddress()

STORPORT_API STOR_PHYSICAL_ADDRESS NTAPI StorPortConvertUlong64ToPhysicalAddress ( _In_ ULONG64  UlongAddress)

◆ StorPortDebugPrint()

STORPORT_API VOID __cdecl StorPortDebugPrint ( _In_ ULONG  DebugPrintLevel,
_In_ PCCHAR  DebugMessage,
  ... 
)

◆ StorPortDeviceBusy()

STORPORT_API BOOLEAN NTAPI StorPortDeviceBusy ( _In_ PVOID  HwDeviceExtension,
_In_ UCHAR  PathId,
_In_ UCHAR  TargetId,
_In_ UCHAR  Lun,
_In_ ULONG  RequestsToComplete 
)

Definition at line 630 of file storport.c.

636{
637 /* TODO: Need coverage test */
641
642 DPRINT1("StorPortDeviceBusy(%p %d %d %d %d)\n",
643 HwDeviceExtension, PathId, TargetId, Lun, RequestsToComplete);
644
645 FdoExtension = StorpGetMiniportFdo(HwDeviceExtension);
647
649 NT_ASSERT(!PdoExtension->FlowControl.IsBusy);
650 PdoExtension->FlowControl.IsBusy = TRUE;
651 PdoExtension->FlowControl.RemainingBusyRequests = RequestsToComplete;
653
654 return FALSE;
655}
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR _In_ UCHAR _In_ UCHAR Lun
Definition: classpnp.h:1315
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR PathId
Definition: classpnp.h:1313
_In_ DXGK_MIRACAST_DISPLAY_CALLBACKS _Out_ PVOID _Out_ ULONG * TargetId
Definition: dispmprt.h:650
#define TRUE
Definition: types.h:120
@ PdoExtension
Definition: precomp.h:61
@ FdoExtension
Definition: precomp.h:60
VOID FASTCALL KeAcquireInStackQueuedSpinLock(IN PKSPIN_LOCK SpinLock, IN PKLOCK_QUEUE_HANDLE LockHandle)
Definition: spinlock.c:130
VOID FASTCALL KeReleaseInStackQueuedSpinLock(IN PKLOCK_QUEUE_HANDLE LockHandle)
Definition: spinlock.c:166
FORCEINLINE PFDO_DEVICE_EXTENSION StorpGetMiniportFdo(_In_ PVOID HwDeviceExtension)
For use in Storport API exposed to miniports; gets FDO extension with HwDeviceExtension.
Definition: inline.h:39
PPDO_DEVICE_EXTENSION FdoFindLun(_In_ PFDO_DEVICE_EXTENSION FdoExtension, _In_ ULONG Bus, _In_ ULONG Target, _In_ ULONG Lun)
Definition: fdo.c:1078
#define NT_ASSERT
Definition: rtlfuncs.h:3334

◆ StorPortDeviceReady()

STORPORT_API BOOLEAN NTAPI StorPortDeviceReady ( _In_ PVOID  HwDeviceExtension,
_In_ UCHAR  PathId,
_In_ UCHAR  TargetId,
_In_ UCHAR  Lun 
)

Definition at line 664 of file storport.c.

669{
670 /* TODO: Need coverage test */
674
675 DPRINT1("StorPortDeviceReady(%p %d %d %d %d)\n",
676 HwDeviceExtension, PathId, TargetId, Lun);
677
678 FdoExtension = StorpGetMiniportFdo(HwDeviceExtension);
680
682 NT_ASSERT(!PdoExtension->FlowControl.IsBusy);
683 PdoExtension->FlowControl.IsBusy = FALSE;
685
686 return FALSE;
687}

◆ StorPortEnablePassiveInitialization()

FORCEINLINE BOOLEAN StorPortEnablePassiveInitialization ( _In_ PVOID  DeviceExtension,
_In_ PHW_PASSIVE_INITIALIZE_ROUTINE  HwPassiveInitializeRoutine 
)

Definition at line 2959 of file storport.h.

2962{
2963 LONG Succ;
2964 Succ = FALSE;
2966 DeviceExtension,
2967 HwPassiveInitializeRoutine,
2968 &Succ);
2969 return (BOOLEAN)Succ;
2970}
unsigned char BOOLEAN
Definition: actypes.h:127
long LONG
Definition: pedump.c:60

Referenced by AhciHwInitialize().

◆ StorPortExtendedFunction()

STORPORT_API ULONG StorPortExtendedFunction ( _In_ STORPORT_FUNCTION_CODE  FunctionCode,
_In_ PVOID  HwDeviceExtension,
  ... 
)

Definition at line 695 of file storport.c.

699{
700 va_list va;
702 PMINIPORT_DEVICE_EXTENSION MiniportExtension = NULL;
703 PFDO_DEVICE_EXTENSION DeviceExtension = NULL;
704 ULONG AllocatePoolSize;
706 PVOID* AllocatedPoolPointer;
707 PVOID PoolPointer;
708
709 DPRINT1("StorPortExtendedFunction(%d %p ...)\n",
710 FunctionCode, HwDeviceExtension);
711
712 va_start(va, HwDeviceExtension);
713
714 switch (FunctionCode) {
716 {
717 /* Allocate a non paged pool for miniport */
718 AllocatePoolSize = va_arg(va, ULONG);
719 PoolTag = va_arg(va, ULONG);
720 AllocatedPoolPointer = va_arg(va, PVOID*);
721
722 if (AllocatedPoolPointer == NULL) {
724 break;
725 }
726
727 PoolPointer = ExAllocatePoolWithTag(NonPagedPool, AllocatePoolSize, PoolTag);
728
729 if (PoolPointer == NULL) {
730 *AllocatedPoolPointer = NULL;
732 break;
733 }
734
735 *AllocatedPoolPointer = PoolPointer;
737 break;
738 }
739
741 {
742 /* Free a pool allocated with ExtFunctionAllocatePool */
743 PoolPointer = va_arg(va, PVOID);
744
745 if (PoolPointer == NULL) {
747 break;
748 }
749
750 ExFreePool(PoolPointer);
752 break;
753 }
754
756 {
757 /* Allocate a timer for an HBA */
758 PTIMER_ENTRY TimerEntry;
759 PVOID* TimerHandle = va_arg(va, PVOID*);
760
761 if (TimerHandle == NULL) {
763 break;
764 }
765
767 sizeof(TIMER_ENTRY),
769 RtlZeroMemory(TimerEntry, sizeof(TIMER_ENTRY));
770
771 if (TimerEntry == NULL) {
773 break;
774 }
775
776 /* Initialize internal timer object; Win8.1+ EX_TIMER may be used too if we had it */
777 /* FIXME: IRQL > DISPATCH_LEVEL will bugcheck; queue a DPC to do this */
778 KeInitializeTimer(&TimerEntry->Timer);
779
780 MiniportExtension = CONTAINING_RECORD(HwDeviceExtension,
782 HwDeviceExtension);
783 DeviceExtension = MiniportExtension->Miniport->DeviceExtension;
784
785 /* Insert into timer list and increment counter */
787 &DeviceExtension->TimerListHead,
788 &TimerEntry->ListEntry,
789 &DeviceExtension->TimerCount);
790
791 /* Return list entry of the timer as its handle */
792 *TimerHandle = (PVOID)&TimerEntry->ListEntry;
794
795 break;
796 }
797
799 {
800 /* Schedule a single shot timer event */
801 PVOID TimerHandle = va_arg(va, PVOID);
802 PHW_TIMER_EX TimerCallback = va_arg(va, PHW_TIMER_EX);
804 ULONGLONG TimerValue = va_arg(va, ULONGLONG);
806 PTIMER_ENTRY TimerEntry;
807 ULONG IsTimerAlreadySet;
808 LARGE_INTEGER TimerDueTime;
809 NTSTATUS MultiplyResult;
810
811 /* FIXME: I actually don't know how to deal with tolerable delay */
813
814 if (HwDeviceExtension == NULL || TimerHandle == NULL || TimerCallback == NULL) {
816 break;
817 }
818
819 TimerEntry = CONTAINING_RECORD(TimerHandle, TIMER_ENTRY, ListEntry);
820
821 /* Check if timer is already set. If so, don't try to reactivate timer. */
822 IsTimerAlreadySet = InterlockedCompareExchange(&TimerEntry->TimerAlreadySet, 1, 0);
823 if (IsTimerAlreadySet == 1) {
825 break;
826 }
827
828 /* If timeout is zero, cancel the timer */
829 if (TimerValue == 0ull) {
830 KeCancelTimer(&TimerEntry->Timer);
832 break;
833 }
834
835 /* This API uses microseconds, KTIMER operate on 100 nanoseconds, multiply by 10
836 to get the correct timer due time */
837 MultiplyResult = RtlULongLongMult(TimerValue, 10ull, (PULONGLONG)&TimerDueTime.QuadPart);
838 if (!NT_SUCCESS(MultiplyResult)) {
840 break;
841 }
842
843 /* Initialize the DPC, context and set timer accordingly */
844 TimerEntry->HwDeviceExtension = HwDeviceExtension;
845 TimerEntry->TimerCallback = TimerCallback;
846 TimerEntry->Context = CallbackContext;
849 (PVOID)TimerEntry);
850 KeSetTimer(&TimerEntry->Timer,
851 TimerDueTime,
852 &TimerEntry->TimerCallbackDpc);
854 break;
855 }
856
857 default:
858 {
860 // __debugbreak();
861 }
862 }
863
864 va_end(va);
865
866 return Status;
867}
LONG NTSTATUS
Definition: precomp.h:26
#define STATUS_NOT_IMPLEMENTED
Definition: d3dkmdt.h:42
_In_ ULONG _In_ ULONG _In_opt_ DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK _In_opt_ PVOID CallbackContext
Definition: dispmprt.h:622
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define va_end(v)
Definition: stdarg.h:28
#define va_arg(v, l)
Definition: stdarg.h:27
#define va_start(v, l)
Definition: stdarg.h:26
char * va_list
Definition: vadefs.h:50
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
Definition: dpc.c:712
VOID NTAPI TimerCallbackDpcRoutine(PKDPC Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
Definition: misc.c:348
#define TAG_MINIPORT_DATA
Definition: precomp.h:33
struct _TIMER_ENTRY * PTIMER_ENTRY
#define ExAllocatePoolWithTag(hernya, size, tag)
Definition: env_spec_w32.h:350
#define ExFreePool(addr)
Definition: env_spec_w32.h:352
#define NonPagedPool
Definition: env_spec_w32.h:307
Status
Definition: gdiplustypes.h:24
FORCEINLINE ULONG StorpInterlockedInsertHeadListCounted(_In_ PKSPIN_LOCK SpinLock, _In_ PLIST_ENTRY ListHead, _In_ PLIST_ENTRY Entry, _In_ PULONG Counter)
InsertHeadList and increment element counter with a corresponding spin lock held.
Definition: inline.h:71
#define InterlockedCompareExchange
Definition: interlocked.h:119
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
Definition: ntbasedef.h:395
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:329
VOID(NTAPI * PHW_TIMER_EX)(_In_ PVOID DeviceExtension, _In_opt_ PVOID Context)
Definition: storport.h:2269
#define STOR_STATUS_INSUFFICIENT_RESOURCES
Definition: storport.h:446
#define STOR_STATUS_SUCCESS
Definition: storport.h:443
#define STOR_STATUS_INVALID_PARAMETER
Definition: storport.h:449
#define STOR_STATUS_BUSY
Definition: storport.h:455
LIST_ENTRY TimerListHead
Definition: precomp.h:268
KSPIN_LOCK TimerListLock
Definition: precomp.h:267
struct _MINIPORT * Miniport
Definition: precomp.h:84
Definition: precomp.h:103
KTIMER Timer
Definition: precomp.h:105
PVOID Context
Definition: precomp.h:110
LONG TimerAlreadySet
Definition: precomp.h:107
PHW_TIMER_EX TimerCallback
Definition: precomp.h:109
LIST_ENTRY ListEntry
Definition: precomp.h:104
KDPC TimerCallbackDpc
Definition: precomp.h:106
PVOID HwDeviceExtension
Definition: precomp.h:108
BOOLEAN NTAPI KeSetTimer(IN OUT PKTIMER Timer, IN LARGE_INTEGER DueTime, IN PKDPC Dpc OPTIONAL)
Definition: timerobj.c:282
BOOLEAN NTAPI KeCancelTimer(IN OUT PKTIMER Timer)
Definition: timerobj.c:206
VOID NTAPI KeInitializeTimer(OUT PKTIMER Timer)
Definition: timerobj.c:233
void * PVOID
Definition: typedefs.h:50
uint64_t ULONGLONG
Definition: typedefs.h:67
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
uint32_t ULONG
Definition: typedefs.h:59
LONGLONG QuadPart
Definition: typedefs.h:114
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG PoolTag
Definition: wdfmemory.h:164
_In_ LARGE_INTEGER _In_ ULONG _In_ ULONG TolerableDelay
Definition: kefuncs.h:1305

Referenced by StorPortAcquireMSISpinLock(), StorPortAllocateMdl(), StorPortAllocatePool(), StorPortBuildMdlForNonPagedPool(), StorPortBuildScatterGatherList(), StorPortCompleteServiceIrp(), StorPortFreeMdl(), StorPortFreePool(), StorPortGetDeviceObjects(), StorPortGetMSIInfo(), StorPortGetOriginalMdl(), StorPortGetStartIoPerfParams(), StorPortGetSystemAddress(), StorPortInitializePerfOpts(), StorPortLogSystemEvent(), StorPortPutScatterGatherList(), and StorPortReleaseMSISpinLock().

◆ StorPortFreeDeviceBase()

STORPORT_API VOID NTAPI StorPortFreeDeviceBase ( _In_ PVOID  HwDeviceExtension,
_In_ PVOID  MappedAddress 
)

Definition at line 876 of file storport.c.

879{
880 DPRINT1("StorPortFreeDeviceBase(%p %p)\n",
881 HwDeviceExtension, MappedAddress);
882}

◆ StorPortFreeMdl()

FORCEINLINE ULONG StorPortFreeMdl ( _In_ PVOID  HwDeviceExtension,
_In_ PVOID  Mdl 
)

Definition at line 3081 of file storport.h.

3084{
3086 HwDeviceExtension,
3087 Mdl);
3088}

◆ StorPortFreePool()

FORCEINLINE ULONG StorPortFreePool ( _In_ PVOID  HwDeviceExtension,
_In_ PVOID  BufferPointer 
)

Definition at line 3055 of file storport.h.

3058{
3060 HwDeviceExtension,
3061 BufferPointer);
3062}

◆ StorPortFreeRegistryBuffer()

STORPORT_API VOID NTAPI StorPortFreeRegistryBuffer ( _In_ PVOID  HwDeviceExtension,
_In_ PUCHAR  Buffer 
)

Definition at line 891 of file storport.c.

894{
895 DPRINT1("StorPortFreeRegistryBuffer()\n");
897}

◆ StorPortGetBusData()

STORPORT_API ULONG NTAPI StorPortGetBusData ( _In_ PVOID  DeviceExtension,
_In_ ULONG  BusDataType,
_In_ ULONG  SystemIoBusNumber,
_In_ ULONG  SlotNumber,
_Out_ _When_(Length !=0, _Out_writes_bytes_(Length)) PVOID  Buffer,
_In_ ULONG  Length 
)

Definition at line 906 of file storport.c.

913{
914 PMINIPORT_DEVICE_EXTENSION MiniportExtension;
917
918 DPRINT1("StorPortGetBusData(%p %lu %lu %lu %p %lu)\n",
919 DeviceExtension, BusDataType, SystemIoBusNumber, SlotNumber, Buffer, Length);
920
921 /* Get the miniport extension */
922 MiniportExtension = CONTAINING_RECORD(DeviceExtension,
924 HwDeviceExtension);
925 DPRINT1("DeviceExtension %p MiniportExtension %p\n",
926 DeviceExtension, MiniportExtension);
927
928 Interface = &MiniportExtension->Miniport->DeviceExtension->BusInterface;
929
930 ReturnLength = Interface->GetBusData(Interface->Context,
931 BusDataType,
932 Buffer,
933 0,
934 Length);
935 DPRINT1("ReturnLength: %lu\n", ReturnLength);
936
937 return ReturnLength;
938}
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG ReturnLength
Definition: bufpool.h:45
_In_ UCXUSBDEVICE _In_ ULONG Interface
Definition: ucxusbdevice.h:428
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
Definition: wdfresource.h:68

Referenced by AhciHwFindAdapter().

◆ StorPortGetDeviceBase()

STORPORT_API PVOID NTAPI StorPortGetDeviceBase ( _In_ PVOID  HwDeviceExtension,
_In_ INTERFACE_TYPE  BusType,
_In_ ULONG  SystemIoBusNumber,
_In_ STOR_PHYSICAL_ADDRESS  IoAddress,
_In_ ULONG  NumberOfBytes,
_In_ BOOLEAN  InIoSpace 
)

Definition at line 947 of file storport.c.

954{
955 PMINIPORT_DEVICE_EXTENSION MiniportExtension;
957 PVOID MappedAddress;
959
960 DPRINT1("StorPortGetDeviceBase(%p %lu %lu 0x%I64x %lu %u)\n",
961 HwDeviceExtension, BusType, SystemIoBusNumber, IoAddress.QuadPart, NumberOfBytes, InIoSpace);
962
963 /* Get the miniport extension */
964 MiniportExtension = CONTAINING_RECORD(HwDeviceExtension,
966 HwDeviceExtension);
967 DPRINT1("HwDeviceExtension %p MiniportExtension %p\n",
968 HwDeviceExtension, MiniportExtension);
969
970 if (!TranslateResourceListAddress(MiniportExtension->Miniport->DeviceExtension,
971 BusType,
972 SystemIoBusNumber,
973 IoAddress,
975 InIoSpace,
977 {
978 DPRINT1("Checkpoint!\n");
979 return NULL;
980 }
981
982 DPRINT1("Translated Address: 0x%I64x\n", TranslatedAddress.QuadPart);
983
984 /* In I/O space */
985 if (InIoSpace)
986 {
987 DPRINT1("Translated Address: %p\n", (PVOID)(ULONG_PTR)TranslatedAddress.QuadPart);
989 }
990
991 /* In memory space */
992 MappedAddress = MmMapIoSpace(TranslatedAddress,
994 FALSE);
995 DPRINT1("Mapped Address: %p\n", MappedAddress);
996
997 Status = AllocateAddressMapping(&MiniportExtension->Miniport->DeviceExtension->MappedAddressList,
998 IoAddress,
999 MappedAddress,
1001 SystemIoBusNumber);
1002 if (!NT_SUCCESS(Status))
1003 {
1004 DPRINT1("Checkpoint!\n");
1005 MappedAddress = NULL;
1006 }
1007
1008 DPRINT1("Mapped Address: %p\n", MappedAddress);
1009 return MappedAddress;
1010}
#define ULONG_PTR
Definition: config.h:101
NTSTATUS AllocateAddressMapping(PMAPPED_ADDRESS *MappedAddressList, STOR_PHYSICAL_ADDRESS IoAddress, PVOID MappedAddress, ULONG NumberOfBytes, ULONG BusNumber)
Definition: misc.c:291
BOOLEAN TranslateResourceListAddress(PFDO_DEVICE_EXTENSION DeviceExtension, INTERFACE_TYPE BusType, ULONG SystemIoBusNumber, STOR_PHYSICAL_ADDRESS IoAddress, ULONG NumberOfBytes, BOOLEAN InIoSpace, PPHYSICAL_ADDRESS TranslatedAddress)
Definition: misc.c:173
PVOID NTAPI MmMapIoSpace(IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType)
Definition: iosup.c:47
uint32_t ULONG_PTR
Definition: typedefs.h:65
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
Definition: halfuncs.h:159
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
Definition: iofuncs.h:2275

Referenced by AhciHwFindAdapter().

◆ StorPortGetDeviceObjects()

FORCEINLINE ULONG StorPortGetDeviceObjects ( _In_ PVOID  HwDeviceExtension,
_Out_ PVOID *  AdapterDeviceObject,
_Out_ PVOID *  PhysicalDeviceObject,
_Out_ PVOID *  LowerDeviceObject 
)

Definition at line 3140 of file storport.h.

3145{
3147 HwDeviceExtension,
3148 AdapterDeviceObject,
3151}
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1157
_In_z_ PCCHAR _In_ PDEVICE_OBJECT LowerDeviceObject
Definition: classpnp.h:983

◆ StorPortGetLogicalUnit()

STORPORT_API PVOID NTAPI StorPortGetLogicalUnit ( _In_ PVOID  HwDeviceExtension,
_In_ UCHAR  PathId,
_In_ UCHAR  TargetId,
_In_ UCHAR  Lun 
)

Definition at line 1019 of file storport.c.

1024{
1025 DPRINT1("StorPortGetLogicalUnit()\n");
1027 return NULL;
1028}

◆ StorPortGetMSIInfo()

FORCEINLINE ULONG StorPortGetMSIInfo ( _In_ PVOID  HwDeviceExtension,
_In_ ULONG  MessageId,
_Out_ PMESSAGE_INTERRUPT_INFORMATION  InterruptInfo 
)

Definition at line 3219 of file storport.h.

3223{
3225 HwDeviceExtension,
3226 MessageId,
3227 InterruptInfo);
3228}

◆ StorPortGetOriginalMdl()

FORCEINLINE ULONG StorPortGetOriginalMdl ( _In_ PVOID  HwDeviceExtension,
_In_ PSCSI_REQUEST_BLOCK  Srb,
_Out_ PVOID *  Mdl 
)

Definition at line 3116 of file storport.h.

3120{
3122 HwDeviceExtension,
3123 Srb,
3124 Mdl);
3125}
_In_ PSCSI_REQUEST_BLOCK Srb
Definition: cdrom.h:989

◆ StorPortGetPhysicalAddress()

STORPORT_API STOR_PHYSICAL_ADDRESS NTAPI StorPortGetPhysicalAddress ( _In_ PVOID  HwDeviceExtension,
_In_opt_ PSCSI_REQUEST_BLOCK  Srb,
_In_ PVOID  VirtualAddress,
_Out_ ULONG *  Length 
)

Definition at line 1037 of file storport.c.

1042{
1043 PMINIPORT_DEVICE_EXTENSION MiniportExtension;
1044 PFDO_DEVICE_EXTENSION DeviceExtension;
1047
1048 DPRINT("StorPortGetPhysicalAddress(%p %p %p %p)\n",
1049 HwDeviceExtension, Srb, VirtualAddress, Length);
1050
1051 /* Get the miniport extension */
1052 MiniportExtension = CONTAINING_RECORD(HwDeviceExtension,
1054 HwDeviceExtension);
1055 DPRINT("HwDeviceExtension %p MiniportExtension %p\n",
1056 HwDeviceExtension, MiniportExtension);
1057
1058 DeviceExtension = MiniportExtension->Miniport->DeviceExtension;
1059
1060 /* Inside of the uncached extension? */
1061 if (((ULONG_PTR)VirtualAddress >= (ULONG_PTR)DeviceExtension->UncachedExtensionVirtualBase) &&
1062 ((ULONG_PTR)VirtualAddress <= (ULONG_PTR)DeviceExtension->UncachedExtensionVirtualBase + DeviceExtension->UncachedExtensionSize))
1063 {
1065
1066 PhysicalAddress.QuadPart = DeviceExtension->UncachedExtensionPhysicalBase.QuadPart + Offset;
1067 *Length = DeviceExtension->UncachedExtensionSize - Offset;
1068
1069 return PhysicalAddress;
1070 }
1071
1072 // FIXME
1073
1074
1076 *Length = 1;
1077// UNIMPLEMENTED;
1078
1079// *Length = 0;
1080// PhysicalAddress.QuadPart = (LONGLONG)0;
1081
1082 return PhysicalAddress;
1083}
_In_ ULONG _In_ MEMORY_CACHING_TYPE _Out_ PPHYSICAL_ADDRESS PhysicalAddress
Definition: dispmprt.h:714
_In_ ULONG _In_ MEMORY_CACHING_TYPE _Out_ PPHYSICAL_ADDRESS _Out_ PVOID * VirtualAddress
Definition: dispmprt.h:716
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
PHYSICAL_ADDRESS NTAPI MmGetPhysicalAddress(IN PVOID Address)
Definition: stubs.c:663
#define DPRINT
Definition: sndvol32.h:73
PVOID UncachedExtensionVirtualBase
Definition: precomp.h:247
ULONG UncachedExtensionSize
Definition: precomp.h:249
PHYSICAL_ADDRESS UncachedExtensionPhysicalBase
Definition: precomp.h:248

Referenced by AhciPortInitialize(), and AhciProcessSrb().

◆ StorPortGetScatterGatherList()

STORPORT_API PSTOR_SCATTER_GATHER_LIST NTAPI StorPortGetScatterGatherList ( _In_ PVOID  DeviceExtension,
_In_ PSCSI_REQUEST_BLOCK  Srb 
)

Definition at line 1092 of file storport.c.

1095{
1096 UNREFERENCED_PARAMETER(HwDeviceExtension);
1097 PQUEUED_REQUEST_REFERENCE RequestReference;
1098
1099 DPRINT("StorPortGetScatterGatherList(%p %p)\n", HwDeviceExtension, Srb);
1100 RequestReference = (PQUEUED_REQUEST_REFERENCE)Srb->OriginalRequest;
1101
1102 return RequestReference->ScatterGatherList;
1103}
struct _QUEUED_REQUEST_REFERENCE * PQUEUED_REQUEST_REFERENCE
PSTOR_SCATTER_GATHER_LIST ScatterGatherList
Definition: precomp.h:345
PVOID OriginalRequest
Definition: srb.h:266

Referenced by AhciATAPICommand(), and DeviceRequestReadWrite().

◆ StorPortGetSrb()

STORPORT_API PSCSI_REQUEST_BLOCK NTAPI StorPortGetSrb ( _In_ PVOID  DeviceExtension,
_In_ UCHAR  PathId,
_In_ UCHAR  TargetId,
_In_ UCHAR  Lun,
_In_ LONG  QueueTag 
)

Definition at line 1112 of file storport.c.

1118{
1119 DPRINT("StorPortGetSrb()\n");
1120 return NULL;
1121}

◆ StorPortGetStartIoPerfParams()

FORCEINLINE ULONG StorPortGetStartIoPerfParams ( _In_ PVOID  HwDeviceExtension,
_In_ PSCSI_REQUEST_BLOCK  Srb,
_Inout_ PSTARTIO_PERFORMANCE_PARAMETERS  StartIoPerfParams 
)

Definition at line 3245 of file storport.h.

3249{
3251 HwDeviceExtension,
3252 Srb,
3253 StartIoPerfParams);
3254}

◆ StorPortGetSystemAddress()

FORCEINLINE ULONG StorPortGetSystemAddress ( _In_ PVOID  HwDeviceExtension,
_In_ PSCSI_REQUEST_BLOCK  Srb,
_Out_ PVOID *  SystemAddress 
)

Definition at line 3103 of file storport.h.

3107{
3109 HwDeviceExtension,
3110 Srb,
3111 SystemAddress);
3112}

◆ StorPortGetUncachedExtension()

STORPORT_API PVOID NTAPI StorPortGetUncachedExtension ( _In_ PVOID  HwDeviceExtension,
_In_ PPORT_CONFIGURATION_INFORMATION  ConfigInfo,
_In_ ULONG  NumberOfBytes 
)

Definition at line 1130 of file storport.c.

1134{
1135 PMINIPORT_DEVICE_EXTENSION MiniportExtension;
1136 PFDO_DEVICE_EXTENSION DeviceExtension;
1137 PHYSICAL_ADDRESS LowestAddress, HighestAddress, Alignment;
1140
1141 DPRINT1("StorPortGetUncachedExtension(%p %p %lu)\n",
1142 HwDeviceExtension, ConfigInfo, NumberOfBytes);
1143
1144 /* Get the miniport extension */
1145 MiniportExtension = CONTAINING_RECORD(HwDeviceExtension,
1147 HwDeviceExtension);
1148 DPRINT1("HwDeviceExtension %p MiniportExtension %p\n",
1149 HwDeviceExtension, MiniportExtension);
1150
1151 DeviceExtension = MiniportExtension->Miniport->DeviceExtension;
1152
1153 /* Return the uncached extension base address if we already have one */
1154 if (DeviceExtension->UncachedExtensionVirtualBase != NULL)
1155 return DeviceExtension->UncachedExtensionVirtualBase;
1156
1157 // FIXME: Set DMA stuff here?
1159 DeviceDescription.Master = ConfigInfo->Master;
1160 DeviceDescription.ScatterGather = ConfigInfo->ScatterGather;
1161 DeviceDescription.DemandMode = ConfigInfo->DemandMode;
1162 DeviceDescription.Dma32BitAddresses = ConfigInfo->Dma32BitAddresses;
1163 DeviceDescription.BusNumber = ConfigInfo->SystemIoBusNumber;
1164 DeviceDescription.DmaChannel = ConfigInfo->DmaChannel;
1165 DeviceDescription.InterfaceType = ConfigInfo->AdapterInterfaceType;
1166 DeviceDescription.DmaWidth = ConfigInfo->DmaWidth;
1167 DeviceDescription.DmaSpeed = ConfigInfo->DmaSpeed;
1168 DeviceDescription.MaximumLength = ConfigInfo->MaximumTransferLength;
1169 DeviceDescription.DmaPort = ConfigInfo->DmaPort;
1170
1171 DeviceExtension->DmaAdapter =
1173
1174 NT_ASSERT(DeviceExtension->DmaAdapter);
1175
1176 /* FIXME: AdapterInterfaceType is exposed here and I think it's convenient to initialize
1177 HwInitData in FDO extension right here. Needs review. */
1178 DeviceExtension->HwInitData = PortGetDriverInitData(DeviceExtension->DriverExtension,
1179 DeviceDescription.InterfaceType);
1180 NT_ASSERT(DeviceExtension->HwInitData);
1181
1182 /* Allocate the uncached extension */
1183 Alignment.QuadPart = 0;
1184 LowestAddress.QuadPart = 0;
1185 HighestAddress.QuadPart = 0x00000000FFFFFFFF;
1187 LowestAddress,
1188 HighestAddress,
1189 Alignment,
1190 MmCached);
1191 if (DeviceExtension->UncachedExtensionVirtualBase == NULL)
1192 return NULL;
1193
1195 DeviceExtension->UncachedExtensionSize = NumberOfBytes;
1196
1197 return DeviceExtension->UncachedExtensionVirtualBase;
1198}
PVOID NTAPI MmAllocateContiguousMemorySpecifyCache(IN SIZE_T NumberOfBytes, IN PHYSICAL_ADDRESS LowestAcceptableAddress OPTIONAL, IN PHYSICAL_ADDRESS HighestAcceptableAddress, IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL, IN MEMORY_CACHING_TYPE CacheType OPTIONAL)
Definition: contmem.c:574
union Alignment_ Alignment
PDMA_ADAPTER NTAPI IoGetDmaAdapter(IN PDEVICE_OBJECT PhysicalDeviceObject, IN PDEVICE_DESCRIPTION DeviceDescription, IN OUT PULONG NumberOfMapRegisters)
Definition: pnpdma.c:23
PHW_INITIALIZATION_DATA PortGetDriverInitData(PDRIVER_OBJECT_EXTENSION DriverExtension, INTERFACE_TYPE InterfaceType)
Definition: storport.c:81
PDEVICE_OBJECT PhysicalDevice
Definition: precomp.h:234
PHW_INITIALIZATION_DATA HwInitData
Definition: precomp.h:293
PDMA_ADAPTER DmaAdapter
Definition: precomp.h:250
PDRIVER_OBJECT_EXTENSION DriverExtension
Definition: precomp.h:235
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
Definition: wdfpdo.h:432
_Out_ PULONG NumberOfMapRegisters
Definition: halfuncs.h:209
#define DEVICE_DESCRIPTION_VERSION
Definition: iotypes.h:2063
@ MmCached
Definition: mmtypes.h:130

Referenced by AhciAllocateResourceForAdapter().

◆ StorPortGetVirtualAddress()

STORPORT_API PVOID NTAPI StorPortGetVirtualAddress ( _In_ PVOID  HwDeviceExtension,
_In_ STOR_PHYSICAL_ADDRESS  PhysicalAddress 
)

Definition at line 1207 of file storport.c.

1210{
1211 DPRINT1("StorPortGetVirtualAddress(%p %I64x)\n",
1212 HwDeviceExtension, PhysicalAddress.QuadPart);
1214 return NULL;
1215}

◆ StorPortInitialize()

STORPORT_API ULONG NTAPI StorPortInitialize ( _In_ PVOID  Argument1,
_In_ PVOID  Argument2,
_In_ PHW_INITIALIZATION_DATA  HwInitializationData,
_In_opt_ PVOID  Unused 
)

◆ StorPortInitializeDpc()

FORCEINLINE VOID StorPortInitializeDpc ( _In_ PVOID  DeviceExtension,
_Out_ PSTOR_DPC  Dpc,
_In_ PHW_DPC_ROUTINE  HwDpcRoutine 
)

Definition at line 2974 of file storport.h.

2978{
2980 DeviceExtension,
2981 Dpc,
2982 HwDpcRoutine);
2983}
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
Definition: wdfdpc.h:112

Referenced by AhciHwPassiveInitialize().

◆ StorPortInitializePerfOpts()

FORCEINLINE ULONG StorPortInitializePerfOpts ( _In_ PVOID  HwDeviceExtension,
_In_ BOOLEAN  Query,
_Inout_ PPERF_CONFIGURATION_DATA  PerfConfigData 
)

Definition at line 3232 of file storport.h.

3236{
3238 HwDeviceExtension,
3239 Query,
3240 PerfConfigData);
3241}
BOOL Query(LPCTSTR *ServiceArgs, DWORD ArgCount, BOOL bExtended)
Definition: query.c:292

◆ StorPortIssueDpc()

FORCEINLINE BOOLEAN StorPortIssueDpc ( _In_ PVOID  DeviceExtension,
_In_ PSTOR_DPC  Dpc,
_In_ PVOID  SystemArgument1,
_In_ PVOID  SystemArgument2 
)

Definition at line 2987 of file storport.h.

2992{
2993 LONG Succ;
2994 Succ = FALSE;
2996 DeviceExtension,
2997 Dpc,
3000 &Succ);
3001 return (BOOLEAN)Succ;
3002}
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
Definition: ketypes.h:756
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
Definition: ketypes.h:757

Referenced by AhciCompleteIssuedSrb().

◆ StorPortLogError()

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

Definition at line 1331 of file storport.c.

1339{
1340 DPRINT1("ScsiPortLogError() called\n");
1341 DPRINT1("PathId: 0x%02x TargetId: 0x%02x Lun: 0x%02x ErrorCode: 0x%08lx UniqueId: 0x%08lx\n",
1342 PathId, TargetId, Lun, ErrorCode, UniqueId);
1343
1344 DPRINT1("ScsiPortLogError() done\n");
1345}
_In_ NDIS_ERROR_CODE ErrorCode
Definition: ndis.h:4436

◆ StorPortLogSystemEvent()

FORCEINLINE ULONG StorPortLogSystemEvent ( _In_ PVOID  HwDeviceExtension,
_Inout_ PSTOR_LOG_EVENT_DETAILS  LogDetails,
_Inout_ PULONG  MaximumSize 
)

Definition at line 3258 of file storport.h.

3262{
3264 HwDeviceExtension,
3265 LogDetails,
3266 MaximumSize);
3267}
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER MaximumSize
Definition: mmfuncs.h:366

◆ StorPortMoveMemory()

STORPORT_API VOID NTAPI StorPortMoveMemory ( _Out_writes_bytes_(Length) PVOID  WriteBuffer,
_In_reads_bytes_(Length) PVOID  ReadBuffer,
_In_ ULONG  Length 
)

Definition at line 1354 of file storport.c.

1358{
1360}
#define RtlMoveMemory(Destination, Source, Length)
Definition: typedefs.h:264

◆ StorPortNotification()

STORPORT_API VOID __cdecl StorPortNotification ( _In_ SCSI_NOTIFICATION_TYPE  NotificationType,
_In_ PVOID  HwDeviceExtension,
  ... 
)

Definition at line 1368 of file storport.c.

1372{
1373 PMINIPORT_DEVICE_EXTENSION MiniportExtension = NULL;
1375 PHW_PASSIVE_INITIALIZE_ROUTINE HwPassiveInitRoutine;
1376 PSTORPORT_EXTENDED_FUNCTIONS *ppExtendedFunctions;
1377 PQUEUED_REQUEST_REFERENCE RequestReference;
1379 PSTOR_DPC Dpc;
1380 PHW_DPC_ROUTINE HwDpcRoutine;
1381 PVOID DpcArgument1;
1382 PVOID DpcArgument2;
1383
1385 PVOID LockContext;
1388
1389 va_list ap;
1390
1391 DPRINT("StorPortNotification(%x %p)\n",
1392 NotificationType, HwDeviceExtension);
1393
1394 /* Get the miniport extension */
1395 if (HwDeviceExtension != NULL)
1396 {
1397 MiniportExtension = CONTAINING_RECORD(HwDeviceExtension,
1399 HwDeviceExtension);
1400 DPRINT("HwDeviceExtension %p MiniportExtension %p\n",
1401 HwDeviceExtension, MiniportExtension);
1402
1403 FdoExtension = MiniportExtension->Miniport->DeviceExtension;
1404 }
1405
1406 va_start(ap, HwDeviceExtension);
1407
1408 switch (NotificationType)
1409 {
1410 case RequestComplete:
1411 DPRINT("RequestComplete\n");
1413 DPRINT("Complete Notify - (%d:%d:%d) ReqRef %p Srb %p Irp %p Tag %x\n",
1417 Srb->QueueTag);
1418 // if (Srb->OriginalRequest != NULL)
1419 // {
1420 // // DPRINT1("Need to complete the IRP!\n");
1421 // PortCompleteRequest(HwDeviceExtension, Srb);
1422 // }
1424 RequestReference = (PQUEUED_REQUEST_REFERENCE)Srb->OriginalRequest;
1425 // if (RequestReference->SpecialRequestId) {
1426 // /* FIXME: DELETE AFTER DEBUG */
1427 // DPRINT1("STORPORT SPECIAL REQUEST %d Queuing for completion\n", RequestReference->SpecialRequestId);
1428 // }
1429
1430 /* Queue for completion */
1431 InterlockedPushEntrySList(&FdoExtension->CompletionList,
1432 &RequestReference->CompletionEntry);
1433
1434 /* Insert DPC for delayed completion */
1435 KeInsertQueueDpc(&FdoExtension->Device->Dpc, NULL, NULL);
1436
1437 break;
1438
1440 DPRINT1("GetExtendedFunctionTable\n");
1442 if (ppExtendedFunctions != NULL)
1443 *ppExtendedFunctions = NULL; /* FIXME: */
1444 break;
1445
1447 DPRINT1("EnablePassiveInitialization\n");
1449 DPRINT1("HwPassiveInitRoutine %p\n", HwPassiveInitRoutine);
1451
1452 // FIXME: It is not guaranteed that enabling passive initialization will fail and return
1453 // FALSE when not called in driver's HwStorInitialize routine.
1454 // Docs: Remarks of https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/storport/nf-storport-storportenablepassiveinitialization
1455 *Result = FALSE;
1456
1457 if ((FdoExtension != NULL) &&
1458 (FdoExtension->HwPassiveInitRoutine == NULL))
1459 {
1460 FdoExtension->HwPassiveInitRoutine = HwPassiveInitRoutine;
1461 *Result = TRUE;
1462 }
1463 break;
1464
1465 case InitializeDpc:
1466 DPRINT("InitializeDpc\n");
1468 DPRINT("Dpc %p\n", Dpc);
1469 HwDpcRoutine = (PHW_DPC_ROUTINE)va_arg(ap, PHW_DPC_ROUTINE);
1470 DPRINT("HwDpcRoutine %p\n", HwDpcRoutine);
1471
1472 KeInitializeDpc((PRKDPC)&Dpc->Dpc,
1473 (PKDEFERRED_ROUTINE)HwDpcRoutine,
1474 (PVOID)(FdoExtension->Miniport.MiniportExtension->HwDeviceExtension));
1475 KeInitializeSpinLock(&Dpc->Lock);
1476 break;
1477
1478 case IssueDpc:
1479 DPRINT("IssueDpc\n");
1481 DpcArgument1 = (PVOID)va_arg(ap, PVOID);
1482 DpcArgument2 = (PVOID)va_arg(ap, PVOID);
1483 DPRINT("Dpc %p Arg1 %p Arg2 %p\n", Dpc, DpcArgument1, DpcArgument2);
1485
1486 *Result = KeInsertQueueDpc((PKDPC)Dpc, DpcArgument1, DpcArgument2);
1487 break;
1488
1489 case AcquireSpinLock:
1490 DPRINT("AcquireSpinLock\n");
1492 DPRINT("SpinLock %lu\n", SpinLock);
1493 LockContext = (PVOID)va_arg(ap, PVOID);
1494 DPRINT("LockContext %p\n", LockContext);
1496 DPRINT("LockHandle %p\n", LockHandle);
1498 SpinLock,
1499 LockContext,
1500 LockHandle);
1501 break;
1502
1503 case ReleaseSpinLock:
1504 DPRINT("ReleaseSpinLock\n");
1506 DPRINT("LockHandle %p\n", LockHandle);
1508 LockHandle);
1509 break;
1510
1511 case RequestTimerCall:
1512 {
1514 ULONG TimerValue;
1515 LARGE_INTEGER TimerDueTime;
1516 NTSTATUS MultiplyResult;
1517
1519 TimerValue = (ULONG)va_arg(ap, ULONG);
1521
1522 /* Set timer if timer value != 0. Logic is exactly same as StorPortRequestTimer */
1523 if (TimerValue != 0)
1524 {
1525 MultiplyResult = RtlULongLongMult(TimerValue, 10ull, (PULONGLONG)&TimerDueTime.QuadPart);
1526 if (!NT_SUCCESS(MultiplyResult)) {
1527 break;
1528 }
1529
1530 FdoExtension->TimerCallback = TimerRoutine;
1531 KeSetTimer(&FdoExtension->Timer, TimerDueTime, &FdoExtension->TimerDpc);
1532 }
1533 else
1534 {
1535 /* Otherwise cancel the timer. */
1536 KeCancelTimer(&FdoExtension->Timer);
1537 }
1538 break;
1539 }
1540
1541 default:
1542 DPRINT1("Unsupported Notification %lx\n", NotificationType);
1543 break;
1544 }
1545
1546 va_end(ap);
1547}
BOOLEAN NTAPI KeInsertQueueDpc(IN PKDPC Dpc, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
Definition: dpc.c:725
VOID(NTAPI * PHW_TIMER)(IN PVOID DeviceExtension)
Definition: srb.h:456
struct _SCSI_REQUEST_BLOCK * PSCSI_REQUEST_BLOCK
@ RequestTimerCall
Definition: srb.h:537
@ RequestComplete
Definition: srb.h:531
#define KeInitializeSpinLock(sl)
Definition: env_spec_w32.h:604
static VOID PortReleaseSpinLock(PFDO_DEVICE_EXTENSION DeviceExtension, PSTOR_LOCK_HANDLE LockHandle)
Definition: storport.c:142
static VOID PortAcquireSpinLock(PFDO_DEVICE_EXTENSION DeviceExtension, STOR_SPINLOCK SpinLock, PVOID LockContext, PSTOR_LOCK_HANDLE LockHandle)
Definition: storport.c:108
BOOLEAN(* PHW_PASSIVE_INITIALIZE_ROUTINE)(_In_ PVOID DeviceExtension)
Definition: storport.h:2310
VOID(* PHW_DPC_ROUTINE)(_In_ PSTOR_DPC Dpc, _In_ PVOID HwDeviceExtension, _In_ PVOID SystemArgument1, _In_ PVOID SystemArgument2)
Definition: storport.h:2315
struct _STOR_LOCK_HANDLE * PSTOR_LOCK_HANDLE
struct _STOR_DPC * PSTOR_DPC
Definition: ketypes.h:767
SLIST_ENTRY CompletionEntry
Definition: precomp.h:339
UCHAR QueueTag
Definition: srb.h:256
UCHAR TargetId
Definition: srb.h:254
UCHAR PathId
Definition: srb.h:253
unsigned char * PBOOLEAN
Definition: typedefs.h:53
_In_ WDF_SPECIAL_FILE_TYPE NotificationType
Definition: wdfdevice.h:1024
void int int ULONGLONG int va_list * ap
Definition: winesup.h:36
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:409
_In_ PIO_TIMER_ROUTINE TimerRoutine
Definition: iofuncs.h:1078
KDEFERRED_ROUTINE * PKDEFERRED_ROUTINE
Definition: ketypes.h:758
#define InterlockedPushEntrySList(SListHead, SListEntry)
Definition: rtlfuncs.h:3413

Referenced by AhciCommandCompletionDpcRoutine(), AhciCompleteIssuedSrb(), AhciHwStartIo(), StorPortAcquireSpinLock(), StorPortEnablePassiveInitialization(), StorPortInitializeDpc(), StorPortIssueDpc(), and StorPortReleaseSpinLock().

◆ StorPortPause()

STORPORT_API BOOLEAN NTAPI StorPortPause ( _In_ PVOID  HwDeviceExtension,
_In_ ULONG  TimeOut 
)

Definition at line 1556 of file storport.c.

1559{
1560 DPRINT1("StorPortPause()\n");
1562 return FALSE;
1563}

◆ StorPortPauseDevice()

STORPORT_API BOOLEAN NTAPI StorPortPauseDevice ( _In_ PVOID  HwDeviceExtension,
_In_ UCHAR  PathId,
_In_ UCHAR  TargetId,
_In_ UCHAR  Lun,
_In_ ULONG  TimeOut 
)

Definition at line 1572 of file storport.c.

1578{
1579 DPRINT1("StorPortPauseDevice()\n");
1581 return FALSE;
1582}

◆ StorPortPutScatterGatherList()

FORCEINLINE ULONG StorPortPutScatterGatherList ( _In_ PVOID  HwDeviceExtension,
_In_ PSTOR_SCATTER_GATHER_LIST  ScatterGatherList,
_In_ BOOLEAN  WriteToDevice 
)

Definition at line 3180 of file storport.h.

3184{
3186 HwDeviceExtension,
3187 ScatterGatherList,
3189}

◆ StorPortQuerySystemTime()

STORPORT_API VOID NTAPI StorPortQuerySystemTime ( _Out_ PLARGE_INTEGER  CurrentTime)

◆ StorPortReadPortBufferUchar()

STORPORT_API VOID NTAPI StorPortReadPortBufferUchar ( _In_ PVOID  HwDeviceExtension,
_In_ PUCHAR  Port,
_In_ PUCHAR  Buffer,
_In_ ULONG  Count 
)

Definition at line 21 of file stubs.c.

26{
28}
#define READ_PORT_BUFFER_UCHAR(port, buffer, count)
Definition: hardware.h:30
CPPORT Port[4]
Definition: headless.c:38
int Count
Definition: noreturn.cpp:7

◆ StorPortReadPortBufferUlong()

STORPORT_API VOID NTAPI StorPortReadPortBufferUlong ( _In_ PVOID  HwDeviceExtension,
_In_ PULONG  Port,
_In_ PULONG  Buffer,
_In_ ULONG  Count 
)

Definition at line 34 of file stubs.c.

39{
41}
#define READ_PORT_BUFFER_ULONG(port, buffer, count)
Definition: hardware.h:32

◆ StorPortReadPortBufferUshort()

STORPORT_API VOID NTAPI StorPortReadPortBufferUshort ( _In_ PVOID  HwDeviceExtension,
_In_ PUSHORT  Port,
_In_ PUSHORT  Buffer,
_In_ ULONG  Count 
)

Definition at line 47 of file stubs.c.

52{
54}
#define READ_PORT_BUFFER_USHORT(port, buffer, count)
Definition: hardware.h:31

◆ StorPortReadPortUchar()

STORPORT_API UCHAR NTAPI StorPortReadPortUchar ( _In_ PVOID  HwDeviceExtension,
_In_ PUCHAR  Port 
)

Definition at line 60 of file stubs.c.

63{
64 return READ_PORT_UCHAR(Port);
65}
#define READ_PORT_UCHAR(p)
Definition: pc98vid.h:22

◆ StorPortReadPortUlong()

STORPORT_API ULONG NTAPI StorPortReadPortUlong ( _In_ PVOID  HwDeviceExtension,
_In_ PULONG  Port 
)

Definition at line 71 of file stubs.c.

74{
75 return READ_PORT_ULONG(Port);
76}
ULONG NTAPI READ_PORT_ULONG(IN PULONG Port)
Definition: portio.c:70

◆ StorPortReadPortUshort()

STORPORT_API USHORT NTAPI StorPortReadPortUshort ( _In_ PVOID  HwDeviceExtension,
_In_ PUSHORT  Port 
)

Definition at line 82 of file stubs.c.

85{
86 return READ_PORT_USHORT(Port);
87}
USHORT NTAPI READ_PORT_USHORT(IN PUSHORT Port)
Definition: portio.c:63

◆ StorPortReadRegisterBufferUchar()

STORPORT_API VOID NTAPI StorPortReadRegisterBufferUchar ( _In_ PVOID  HwDeviceExtension,
_In_ PUCHAR  Register,
_In_ PUCHAR  Buffer,
_In_ ULONG  Count 
)

Definition at line 93 of file stubs.c.

98{
100}
NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_UCHAR(IN PUCHAR Register, IN PUCHAR Buffer, IN ULONG Count)

◆ StorPortReadRegisterBufferUlong()

STORPORT_API VOID NTAPI StorPortReadRegisterBufferUlong ( _In_ PVOID  HwDeviceExtension,
_In_ PULONG  Register,
_In_ PULONG  Buffer,
_In_ ULONG  Count 
)

Definition at line 106 of file stubs.c.

111{
113}
NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_ULONG(IN PULONG Register, IN PULONG Buffer, IN ULONG Count)

◆ StorPortReadRegisterBufferUshort()

STORPORT_API VOID NTAPI StorPortReadRegisterBufferUshort ( _In_ PVOID  HwDeviceExtension,
_In_ PUSHORT  Register,
_In_ PUSHORT  Buffer,
_In_ ULONG  Count 
)

Definition at line 119 of file stubs.c.

124{
126}
NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_USHORT(IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count)

◆ StorPortReadRegisterUchar()

STORPORT_API UCHAR NTAPI StorPortReadRegisterUchar ( _In_ PVOID  HwDeviceExtension,
_In_ PUCHAR  Register 
)

Definition at line 132 of file stubs.c.

135{
137}
NTKERNELAPI UCHAR NTAPI READ_REGISTER_UCHAR(IN PUCHAR Register)

◆ StorPortReadRegisterUlong()

STORPORT_API ULONG NTAPI StorPortReadRegisterUlong ( _In_ PVOID  HwDeviceExtension,
_In_ PULONG  Register 
)

◆ StorPortReadRegisterUshort()

STORPORT_API USHORT NTAPI StorPortReadRegisterUshort ( _In_ PVOID  HwDeviceExtension,
_In_ PUSHORT  Register 
)

Definition at line 154 of file stubs.c.

157{
159}
#define READ_REGISTER_USHORT(r)
Definition: arm.h:13

◆ StorPortReady()

STORPORT_API BOOLEAN NTAPI StorPortReady ( _In_ PVOID  HwDeviceExtension)

Definition at line 1610 of file storport.c.

1612{
1613 DPRINT1("StorPortReady()\n");
1615 return FALSE;
1616}

◆ StorPortRegistryRead()

STORPORT_API BOOLEAN NTAPI StorPortRegistryRead ( _In_ PVOID  HwDeviceExtension,
_In_ PUCHAR  ValueName,
_In_ ULONG  Global,
_In_ ULONG  Type,
_In_ PUCHAR  Buffer,
_In_ PULONG  BufferLength 
)

Definition at line 1625 of file storport.c.

1632{
1633 DPRINT1("StorPortRegistryRead()\n");
1635 return FALSE;
1636}

◆ StorPortRegistryWrite()

STORPORT_API BOOLEAN NTAPI StorPortRegistryWrite ( _In_ PVOID  HwDeviceExtension,
_In_ PUCHAR  ValueName,
_In_ ULONG  Global,
_In_ ULONG  Type,
_In_ PUCHAR  Buffer,
_In_ ULONG  BufferLength 
)

Definition at line 1645 of file storport.c.

1652{
1653 DPRINT1("StorPortRegistryWrite()\n");
1655 return FALSE;
1656}

◆ StorPortReleaseMSISpinLock()

FORCEINLINE ULONG StorPortReleaseMSISpinLock ( _In_ PVOID  HwDeviceExtension,
_In_ ULONG  MessageId,
_In_ ULONG  OldIrql 
)

Definition at line 3206 of file storport.h.

3210{
3212 HwDeviceExtension,
3213 MessageId,
3214 OldIrql);
3215}

◆ StorPortReleaseSpinLock()

FORCEINLINE VOID StorPortReleaseSpinLock ( _In_ PVOID  DeviceExtension,
_Inout_ PSTOR_LOCK_HANDLE  LockHandle 
)

Definition at line 3021 of file storport.h.

3024{
3026 DeviceExtension,
3027 LockHandle);
3028}

Referenced by AhciCommandCompletionDpcRoutine(), AhciHwResetBus(), and AhciProcessIO().

◆ StorPortResume()

STORPORT_API BOOLEAN NTAPI StorPortResume ( _In_ PVOID  HwDeviceExtension)

Definition at line 1665 of file storport.c.

1667{
1668 DPRINT1("StorPortResume()\n");
1670 return FALSE;
1671}

◆ StorPortResumeDevice()

STORPORT_API BOOLEAN NTAPI StorPortResumeDevice ( _In_ PVOID  HwDeviceExtension,
_In_ UCHAR  PathId,
_In_ UCHAR  TargetId,
_In_ UCHAR  Lun 
)

Definition at line 1680 of file storport.c.

1685{
1686 DPRINT1("StorPortResumeDevice()\n");
1688 return FALSE;
1689}

◆ StorPortSetBusDataByOffset()

STORPORT_API ULONG NTAPI StorPortSetBusDataByOffset ( _In_ PVOID  DeviceExtension,
_In_ ULONG  BusDataType,
_In_ ULONG  SystemIoBusNumber,
_In_ ULONG  SlotNumber,
_In_reads_bytes_(Length) PVOID  Buffer,
_In_ ULONG  Offset,
_In_ ULONG  Length 
)

Definition at line 1698 of file storport.c.

1706{
1707 PMINIPORT_DEVICE_EXTENSION MiniportExtension;
1710
1711 DPRINT1("StorPortSetBusData(%p %lu %lu %lu %p %lu %lu)\n",
1712 DeviceExtension, BusDataType, SystemIoBusNumber, SlotNumber, Buffer, Offset, Length);
1713
1714 MiniportExtension = CONTAINING_RECORD(DeviceExtension,
1716 HwDeviceExtension);
1717 DPRINT1("DeviceExtension %p MiniportExtension %p\n",
1718 DeviceExtension, MiniportExtension);
1719
1720 Interface = &MiniportExtension->Miniport->DeviceExtension->BusInterface;
1721
1722 ReturnLength = Interface->SetBusData(Interface->Context,
1723 BusDataType,
1724 Buffer,
1725 Offset,
1726 Length);
1727 DPRINT1("ReturnLength: %lu\n", ReturnLength);
1728
1729 return ReturnLength;
1730}

◆ StorPortSetDeviceQueueDepth()

STORPORT_API BOOLEAN NTAPI StorPortSetDeviceQueueDepth ( _In_ PVOID  HwDeviceExtension,
_In_ UCHAR  PathId,
_In_ UCHAR  TargetId,
_In_ UCHAR  Lun,
_In_ ULONG  Depth 
)

Definition at line 1739 of file storport.c.

1745{
1749
1750 DPRINT1("StorPortSetDeviceQueueDepth(%p %d %d %d %d)\n",
1751 HwDeviceExtension, PathId, TargetId, Lun, Depth);
1752
1753 FdoExtension = StorpGetMiniportFdo(HwDeviceExtension);
1755
1756 /* 254 is pre-Windows-8 per LUN queue limit */
1757 if (PdoExtension == NULL || Depth > 254)
1758 {
1759 return FALSE;
1760 }
1761
1763 PdoExtension->OutstandingRequestMax = Depth;
1765
1766 DPRINT("Set Path %d Target %d Lun %d Queue depth to %d\n", PathId, TargetId, Lun, Depth);
1767
1768 return FALSE;
1769}
UINT Depth
Definition: d3d12.idl:4644

Referenced by AtapiInquiryCompletion(), and InquiryCompletion().

◆ StorPortStallExecution()

STORPORT_API VOID NTAPI StorPortStallExecution ( _In_ ULONG  Delay)

Definition at line 1778 of file storport.c.

1780{
1782}
#define KeStallExecutionProcessor(MicroSeconds)
Definition: precomp.h:27

Referenced by AhciAdapterReset(), AhciPortInitialize(), and AhciStartPort().

◆ StorPortSynchronizeAccess()

STORPORT_API VOID NTAPI StorPortSynchronizeAccess ( _In_ PVOID  HwDeviceExtension,
_In_ PSTOR_SYNCHRONIZED_ACCESS  SynchronizedAccessRoutine,
_In_opt_ PVOID  Context 
)

Definition at line 1791 of file storport.c.

1795{
1796 DPRINT1("StorPortSynchronizeAccess()\n");
1798}

◆ StorPortValidateRange()

STORPORT_API BOOLEAN NTAPI StorPortValidateRange ( _In_ PVOID  HwDeviceExtension,
_In_ INTERFACE_TYPE  BusType,
_In_ ULONG  SystemIoBusNumber,
_In_ STOR_PHYSICAL_ADDRESS  IoAddress,
_In_ ULONG  NumberOfBytes,
_In_ BOOLEAN  InIoSpace 
)

Definition at line 1807 of file storport.c.

1814{
1815 DPRINT1("StorPortValidateRange()\n");
1816 return TRUE;
1817}

◆ StorPortWritePortBufferUchar()

STORPORT_API VOID NTAPI StorPortWritePortBufferUchar ( _In_ PVOID  HwDeviceExtension,
_In_ PUCHAR  Port,
_In_ PUCHAR  Buffer,
_In_ ULONG  Count 
)

Definition at line 165 of file stubs.c.

170{
172}
#define WRITE_PORT_BUFFER_UCHAR(port, buffer, count)
Definition: hardware.h:33

◆ StorPortWritePortBufferUlong()

STORPORT_API VOID NTAPI StorPortWritePortBufferUlong ( _In_ PVOID  HwDeviceExtension,
_In_ PULONG  Port,
_In_ PULONG  Buffer,
_In_ ULONG  Count 
)

Definition at line 178 of file stubs.c.

183{
185}
#define WRITE_PORT_BUFFER_ULONG(port, buffer, count)
Definition: hardware.h:35

◆ StorPortWritePortBufferUshort()

STORPORT_API VOID NTAPI StorPortWritePortBufferUshort ( _In_ PVOID  HwDeviceExtension,
_In_ PUSHORT  Port,
_In_ PUSHORT  Buffer,
_In_ ULONG  Count 
)

Definition at line 191 of file stubs.c.

196{
198}
#define WRITE_PORT_BUFFER_USHORT(port, buffer, count)
Definition: hardware.h:34

◆ StorPortWritePortUchar()

STORPORT_API VOID NTAPI StorPortWritePortUchar ( _In_ PVOID  HwDeviceExtension,
_In_ PUCHAR  Port,
_In_ UCHAR  Value 
)

Definition at line 204 of file stubs.c.

208{
210}
#define WRITE_PORT_UCHAR(p, d)
Definition: pc98vid.h:21
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413

◆ StorPortWritePortUlong()

STORPORT_API VOID NTAPI StorPortWritePortUlong ( _In_ PVOID  HwDeviceExtension,
_In_ PULONG  Port,
_In_ ULONG  Value 
)

Definition at line 216 of file stubs.c.

220{
222}
VOID NTAPI WRITE_PORT_ULONG(IN PULONG Port, IN ULONG Value)
Definition: portio.c:123

◆ StorPortWritePortUshort()

STORPORT_API VOID NTAPI StorPortWritePortUshort ( _In_ PVOID  HwDeviceExtension,
_In_ PUSHORT  Port,
_In_ USHORT  Value 
)

Definition at line 228 of file stubs.c.

232{
234}
VOID NTAPI WRITE_PORT_USHORT(IN PUSHORT Port, IN USHORT Value)
Definition: portio.c:115

◆ StorPortWriteRegisterBufferUchar()

STORPORT_API VOID NTAPI StorPortWriteRegisterBufferUchar ( _In_ PVOID  HwDeviceExtension,
_In_ PUCHAR  Register,
_In_ PUCHAR  Buffer,
_In_ ULONG  Count 
)

Definition at line 240 of file stubs.c.

245{
247}
NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_UCHAR(IN PUCHAR Register, IN PUCHAR Buffer, IN ULONG Count)

◆ StorPortWriteRegisterBufferUlong()

STORPORT_API VOID NTAPI StorPortWriteRegisterBufferUlong ( _In_ PVOID  HwDeviceExtension,
_In_ PULONG  Register,
_In_ PULONG  Buffer,
_In_ ULONG  Count 
)

Definition at line 253 of file stubs.c.

258{
260}
NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_ULONG(IN PULONG Register, IN PULONG Buffer, IN ULONG Count)

◆ StorPortWriteRegisterBufferUshort()

STORPORT_API VOID NTAPI StorPortWriteRegisterBufferUshort ( _In_ PVOID  HwDeviceExtension,
_In_ PUSHORT  Register,
_In_ PUSHORT  Buffer,
_In_ ULONG  Count 
)

Definition at line 266 of file stubs.c.

271{
273}
NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_USHORT(IN PUSHORT Register, IN PUSHORT Buffer, IN ULONG Count)

◆ StorPortWriteRegisterUchar()

STORPORT_API VOID NTAPI StorPortWriteRegisterUchar ( _In_ PVOID  HwDeviceExtension,
_In_ PUCHAR  Register,
_In_ UCHAR  Value 
)

Definition at line 279 of file stubs.c.

283{
285}
NTKERNELAPI VOID NTAPI WRITE_REGISTER_UCHAR(IN PUCHAR Register, IN UCHAR Value)

◆ StorPortWriteRegisterUlong()

STORPORT_API VOID NTAPI StorPortWriteRegisterUlong ( _In_ PVOID  HwDeviceExtension,
_In_ PULONG  Register,
_In_ ULONG  Value 
)

Definition at line 291 of file stubs.c.

295{
297}
#define WRITE_REGISTER_ULONG(r, v)
Definition: arm.h:11

Referenced by AhciActivatePort(), AhciAdapterReset(), AhciHwFindAdapter(), AhciInterruptHandler(), AhciPortInitialize(), and AhciStartPort().

◆ StorPortWriteRegisterUshort()

STORPORT_API VOID NTAPI StorPortWriteRegisterUshort ( _In_ PVOID  HwDeviceExtension,
_In_ PUSHORT  Register,
_In_ USHORT  Value 
)

Definition at line 303 of file stubs.c.

307{
309}
#define WRITE_REGISTER_USHORT(r, v)
Definition: arm.h:14