A.4.5.2 Handling SRB_FUNCTION_EXECUTE_SCSI

After the Windows NT higher-level SCSI class drivers have loaded, most of the SRBs sent to the HwScsiStartIo routine have the Function member set to SRB_FUNCTION_EXECUTE_SCSI.

On receipt of an SRB_FUNCTION_EXECUTE_SCSI request, a miniport’s HwScsiStartIo routine does the following:

If the miniport driver uses system DMA, it must call ScsiPortIoMapTransfer before programming the HBA to transfer data. ScsiPortIoMapTransfer sets up the system DMA controller and calls the miniport’s HwScsiDmaStarted routine, described later in Section A.4.6.

All system-defined, required device I/O control requests sent to Windows NT SCSI class drivers are mapped to SRBs with the Function member set to SRB_FUNCTION_EXECUTE_SCSI.