ScsiPortIoMapTransfer

VOID
    ScsiPortIoMapTransfer(

        IN PVOID  HwDeviceExtension,
        IN PSCSI_REQUEST_BLOCK  Srb,
        IN ULONG  LogicalAddress,
        IN ULONG  Length
        );

ScsiPortIoMapTransfer sets up the system DMA controller for a miniport driver to transfer data through a slave HBA.

Parameters

HwDeviceExtension
Points to the miniport driver’s per-HBA storage area.
Srb
Point to the SCSI request block for the DMA transfer.
LogicalAddress
Specifies the starting address for the transfer operation. This value can be the base address of a buffer into which or from which data is to be transferred. This value can be an offset within such a buffer.
Length
Specifies the number of bytes to be transferred.

Comments

Only miniport drivers of HBAs that use a system DMA controller (slave DMA) call ScsiPortIoMapTransfer. This routine must be called before such a miniport sets up its HBA to transfer data. The range specified by the LogicalAddress and Length must be within the buffer described by the given SRB.

After the OS-specific port driver programs the system DMA controller, it calls the miniport driver’s HwScsiDmaStarted routine. HwScsiDmaStarted should program the HBA to begin the data transfer. Note that an HBA can interrupt between the miniport’s call to ScsiPortIoMapTransfer and the OS-specific port driver’s call to the miniport’s HwScsiDmaStarted routine.

See Also

HwScsiDmaStarted, ScsiPortFlushDma