A.4.3.1 Calling ScsiPortXxx from HwScsiFindAdapter
Certain ScsiPortXxx routines can be called only from the
miniport driver’s HwScsiFindAdapter routine(s), in particular, the following:
-
ScsiPortGetBusData to get BUS_DATA_TYPE-specific configuration
information, such as bus-relative device memory (access) ranges, interrupt
vector or IRQL, DMA channel or port, etc.
-
ScsiPortValidateRange to verify that a miniport-supplied bus-relative
access range has not already been claimed in the registry by another driver
for its device
-
ScsiPortGetDeviceBase to map the (bus-relative) “physical” address
range for an HBA to a system-assigned logical address range that the driver
can use to communicate with the HBA by calling the ScsiPortReadXxx
and ScsiPortWriteXxx routines with the mapped logical range
addresses
-
ScsiPortFreeDeviceBase to release such a mapped range if
HwScsiFindAdapter does not find an HBA it can support on a given I/O bus, as
indicated by the PORT_CONFIGURATION_INFORMATION SystemIoBusNumber value
-
ScsiPortGetUncachedExtension to allocate a DMA buffer shared between
the system and a busmaster HBA
For more information about the PORT_CONFIGURATION_INFORMATION structure and
these ScsiPortXxx routines, see also the Kernel-Mode Driver
Reference.