A.4.3.4 Setting Again and Returning from HwScsiFindAdapter

For a supported and successfully configured HBA, the HwScsiFindAdapter routine returns SP_RETURN_FOUND.

The HwScsiFindAdapter routine should set Again to TRUE to indicate it should be called again with exactly the same ConfigInfo but a new DeviceExtension if another of its HBAs might be connected on the same I/O bus.

If HwScsiFindAdapter cannot find an HBA it supports, it should set Again to FALSE and return SP_RETURN_NOT_FOUND. If the HwScsiFindAdapter routine finds a supported HBA but the input PORT_CONFIGURATION_INFORMATION has inconsistent configuration data (such as an invalid DmaChannel or BusInterruptLevel on an EISA bus), it should set Again to FALSE and return SP_RETURN_BAD_CONFIG. For an HBA on a PCI bus, HwScsiFindAdapter can accept the interrupt configuration information supplied by the system.

Note that setting Again to FALSE and returning control with SP_RETURN_NOT_FOUND or SP_RETURN_BAD_CONFIG indicates that a given I/O bus, identified by the SystemIoBusNumber in the input ConfigInfo buffer, has no HBA that the miniport driver can support. It does not prevent the system port driver from calling HwScsiFindAdapter again with updated PORT_CONFIGURATION_INFORMATION to scan another I/O bus for HBA(s) if the machine has additional I/O buses of the same AdapterInterfaceType.