Services — Boot Services
Version 1.10 12/01/02 5-39
EFI_OPEN_PROTOCOL_EXCLUSIVE and calling the boot service
DisconnectController()
for each of them. If the disconnect succeeds, then those agents
will have called the boot service CloseProtocol()
to release the protocol interface. Lastly, all
of the agents that have the protocol interface open with an attribute of
EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL,
EFI_OPEN_PROTOCOL_GET_PROTOCOL,orEFI_OPEN_PROTOCOL_TEST_PROTOCOL are
closed. If there are any agents remaining that still have the protocol interface open, the protocol
interface is not removed from the handle and EFI_ACCESS_DENIED is returned. In addition, all
of the drivers that were disconnected with the boot service DisconnectController() earlier,
are reconnected with the boot service ConnectController()
. If there are no agents remaining
that are consuming the protocol interface, then the protocol interface is removed from the handle as
described above.
Status Codes Returned
EFI_SUCCESS The interface was removed.
EFI_NOT_FOUND The interface was not found.
EFI_ACCESS_DENIED The interface was not removed because the interface
is still being used by a driver.
EFI_INVALID_PARAMETER One of the parameters has an invalid value.