Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Services — Boot Services
Version 1.10 12/01/02 5-51
If Attributes is BY_DRIVER , BY_DRIVER|EXCLUSIVE,orEXCLUSIVE,andthereareany
items on the open list of the protocol interface with an attribute of EXCLUSIVE or
BY_DRIVER|EXCLUSIVE,thenEFI_ACCESS_DENIED is returned.
If Attributes is BY_DRIVER, and there are any items on the open list of the protocol interface
with an attribute of BY_DRIVER,andAgentHandle is the same agent handle in the open list
item, then EFI_ALREADY_STARTED is returned.
If Attributes is BY_DRIVER, and there are any items on the open list of the protocol interface
with an attribute of BY_DRIVER,andAgentHandle is different than the agent handle in the
open list item, then EFI_ACCESS_DENIED is returned.
If Attributes is BY_DRIVER|EXCLUSIVE, and there are any items on the open list of the
protocol interface with an attribute of BY_DRIVER|EXCLUSIVE,andAgentHandle is the
same agent handle in the open list item, then EFI_ALREADY_STARTED is returned.
If Attributes is BY_DRIVER|EXCLUSIVE, and there are any items on the open list of the
protocol interface with an attribute of BY_DRIVER|EXCLUSIVE,andAgentHandle is different
than the agent handle in the open list item, then EFI_ACCESS_DENIED is returned.
If Attributes is BY_DRIVER|EXCLUSIVE or EXCLUSIVE, and there are any items on
the open list of the protocol interface with an attribute of BY_DRIVER, then the boot service
DisconnectController()
is called for each of these drivers on the open list. If there are
any items in the open list of the protocol interface with an attribute of BY_DRIVER remaining
after all the DisconnectController() calls have been made, EFI_ACCESS_DENIED
is returned.
Related Definitions
#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
#define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010
#define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020
The following is the list of legal values for the Attributes parameter, and how each value is
used.
BY_HANDLE_PROTOCOL Used in the implementation of HandleProtocol()
.Since
OpenProtocol()
performs the same function as
HandleProtocol() with additional functionality,
HandleProtocol() cansimplycallOpenProtocol()
with this Attributes value.
GET_PROTOCOL Used by a driver to get a protocol interface from a handle. Care
must be taken when using this open mode because the driver that
opens a protocol interface in this manner will not be informed if
the protocol interface is uninstalled or reinstalled. The caller is
also not required to close the protocol interface with
CloseProtocol()
.