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