Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Services — Boot Services
Version 1.10 12/01/02 5-41
components that use the OpenProtocol() and CloseProtocol() boot services, a safe
version of this function can be implemented.
When this function is called, a call is first made to the boot service
UninstallProtocolInterface()
. This will guarantee that all of the agents are currently
consuming the protocol interface OldInterface will stop using OldInterface.If
UninstallProtocolInterface() returns EFI_ACCESS_DENIED, then this function
returns EFI_ACCESS_DENIED, OldInterface remains on Handle, and the protocol notifies
are not processed because NewInterface was never installed.
If UninstallProtocolInterface() succeeds, then a call is made to the boot service
InstallProtocolInterface()
to put the NewInterface onto Handle.
Finally, the boot service ConnectController()
is called so all agents that were forced to
release OldInterface with UninstallProtocolInterface() can now consume the
protocol interface NewInterface that was installed with InstallProtocolInterface().
After OldInterface has been replaced with NewInterface, any process that has registered
to wait for the installation of the interface is notified.
Status Codes Returned
EFI_SUCCESS The protocol interface was reinstalled.
EFI_NOT_FOUND
The
OldInterface on the handle was not found.
EFI_ACCESS_DENIED The protocol interface could not be reinstalled,
because
OldInterface is still being used by a
driver that will not release it.
EFI_INVALID_PARAMETER One of the parameters has an invalid value.