beautypg.com

Reinstallprotocolinterface() – Intel Extensible Firmware Interface User Manual

Page 138

background image

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