Asynchronous Event Processing

A VSD must process the AEP_CONFIG_DCB and AEP_BOOT_COMPLETE functions that it receives during driver registration.

When processing the AEP_CONFIG_DCB function, the VSD must determine whether the given DCB corresponds to the type of bus and block device it can support. If so, the driver inserts itself into the calldown list for the DCB by using the ISP_INSERT_CALLDOWN function of the ILB_service_rtn routine. The driver must set the ISP_i_cd_req member to the address of the I/O request routine for the VSD. Subsequently, this routine is called whenever an I/O request for the device associated with the DCB is issued.

When processing the AEP_BOOT_COMPLETE function, the VSD must determine whether it successfully detected any devices it can support. If not, the driver must set the AEP_result member to AEP_FAILURE. This ensures that the VSD will be removed from memory.

Depending on whether the VSD specified additional values in the DRP_feature_code member of its DRP structure it may need to process additional asynchronous event functions.

See Also

AEP, DCB, DRP, ILB_service_rtn, ISP