Reinstallprotocolinterface() – Intel Extensible Firmware Interface User Manual
Page 138

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
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