Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Extensible Firmware Interface Specification
5-40 12/01/02 Version 1.10
ReinstallProtocolInterface()
Summary
Reinstalls a protocol interface on a device handle.
Prototype
typedef
EFI_STATUS
ReinstallProtocolInterface (
IN EFI_HANDLE Handle,
IN EFI_GUID *Protocol,
IN VOID *OldInterface,
IN VOID *NewInterface
);
Parameters
Handle Handle on which the interface is to be reinstalled. If Handle is not a
valid handle, then EFI_INVALID_PARAMETER is returned. Type
EFI_HANDLE is defined in the InstallProtocolInterface()
function description.
Protocol The numeric ID of the interface. It is the caller’s responsibility to pass in
a valid GUID. See “Wired For Management Baseline” for a description
of valid GUID values. Type EFI_GUID is defined in the
InstallProtocolInterface() function description.
OldInterface A pointer to the old interface. NULL can be used if a structure is not
associated with Protocol.
NewInterface A pointer to the new interface. NULL can be used if a structure is not
associated with Protocol.
Description
The ReinstallProtocolInterface() function reinstalls a protocol interface on a device
handle. The OldInterface for Protocol is replaced by the NewInterface.
NewInterface may be the same as OldInterface. If it is, the registered protocol notifies
occur for the handle without replacing the interface on the handle.
As with InstallProtocolInterface(), any process that has registered to wait for the
installation of the interface is notified.
The caller is responsible for ensuring that there are no references to the OldInterface that is
being removed.
EFI 1.10 Extension
The extension to this service directly addresses the limitations described in the section above.
There may be some number of drivers currently consuming the protocol interface that is being
reinstalled. In this case, it may be dangerous to replace a protocol interface in the system. It could
result in an unstable state, because a driver may attempt to use the old protocol interface after a new
one has been reinstalled. Since the usage of protocol interfaces is now being tracked for