When a command completes, the fast disk device must call the BlockDev_Command_Complete service with the following parameters: the EDI register points to the fast disk device's BDD and the ESI register points to the command block for command that completed.
The fast disk device is responsible for updating the BD_CB_Cmd_Status field as well as changing any other fields that should be modified for the command. The block device then calls the command complete callback address specified in the command. The fast disk device should never call the command complete address directly. They should always call BlockDev_Command_Complete. If the virtual block device is serializing commands for the fast disk device, a new command may be send to the fast disk device's command procedure before this service returns.