A.4.5.1 Modifying SRBs
As mentioned in the preceding section, a SCSI miniport’s DriverEntry
routine must request that the port driver allocate memory for SRB extensions
if the miniport maintains per-request state information.
Otherwise, a SCSI miniport driver can write values into SRBs only for
the following purposes and only in the following members:
-
To return required status about each operation in the SrbStatus and ScsiStatus
members
-
If an underrun occurs, to update the DataTransferLength member
-
If it supports auto request sense and transfers request-sense information, to
update the SenseInfoBufferLength
-
If SRB_FLAGS_UNSPECIFIED_DIRECTION is set in the SrbFlags member and
the HBA is a slave DMA device, to reset the SRB_FLAGS_DATA_IN or
SRB_FLAGS_DATA_OUT, as appropriate to the current transfer request