PVOID ScsiPortGetDeviceBase(HwDeviceExtension, BusType, SytemIoBusNumber, IoAddress, NumberOfBytes, InIoSpace) IN PVOID HwDeviceExtension; IN INTERFACE_TYPE BusType; IN ULONG SystemIoBusNumber; IN SCSI_PHYSICAL_ADDRESS IoAddress; IN ULONG NumberOfBytes; IN BOOLEAN InIoSpace;
Returns a mapped system address that must be used to adjust device address ranges in that HBA's ACCESS_RANGE elements.
HwDeviceExtension
Points to the HBA miniport driver's storage for adapter data.
BusType
Specifies the type of bus, such as ISA or MCA. This value can be retrieved from the PORT_CONFIGURATION_INFORMATION structure.
SystemIoBusNumber
Specifies on which bus the HBA is connected. This value can be retrieved from the PORT_CONFIGURATION_INFORMATION structure.
IoAddress
Specifies the starting physical base address for the HBA.
NumberOfBytes
Specifies the range, in bytes, that the mapping covers. The driver must not access the hardware outside of this range.
InIoSpace
Specifies whether the address is in I/O space; otherwise, it is in memory space.
ScsiPortGetDeviceBase can be called only from an HBA miniport driver's HwFindAdapter routine. Calls from other HBA miniport driver routines result in system failure or in an incorrect operation. ScsiPortGetDeviceBase can be called several times.
Windows NT machines can have several I/O buses, or the system can map I/O space to memory. In order to make HBA miniport drivers portable, the addresses they use must be translated. The returned base address should be added to all references made to the hardware. Driver writers should make no assumptions about how many bits are used in the returned base address.
See also HwFindAdapter, ScsiPortFreeDeviceBase