ScsiPortCompleteRequest function

The ScsiPortCompleteRequest routine completes all of the active requests for the given SCSI bus, controller, or LU, including a request being processed by the calling miniport driver routine.

Note The SCSI port driver and SCSI miniport driver models may be altered or unavailable in the future. Instead, we recommend using the Storport driver and Storport miniport driver models.


SCSIPORT_API VOID ScsiPortCompleteRequest(
  PVOID HwDeviceExtension,
  UCHAR PathId,
  UCHAR TargetId,
  UCHAR Lun,
  UCHAR SrbStatus



Pointer to the hardware device extension. This is a per-HBA storage area that the port driver allocates and initializes on behalf of the miniport driver. Miniport drivers usually store HBA-specific information in this extension, such as the state of the HBA and the HBA's mapped access ranges. This area is available to the miniport driver in the DeviceExtension->HwDeviceExtension member of the HBA's device object immediately after the miniport driver calls ScsiPortInitialize. The port driver frees this memory when it removes the device.


Identifies the SCSI bus; SP_UNTAGGED indicates all buses controlled by the HBA.


Identifies the target controller or device on the given buses; SP_UNTAGGED indicates all targets on the bus.


Identifies the logical unit for the given target controller or device; SP_UNTAGGED indicates all logical units for the given target controllers on the given buses.


Specifies the completion status to be set in the SrbStatus member of each SRB.

Return Value



ScsiPortCompleteRequest can be called to complete outstanding requests after a bus reset, a device reset, or an abort, rather than calling ScsiPortNotification for each outstanding request individually. After calling ScsiPortCompleteRequest, do not also call ScsiPortNotification.


Target Platform Desktop
Header srb.h (include Miniport.h, Scsi.h)
Library Scsiport.lib

See Also