Efi_driver_binding_protocol.supported(), Supported(), Abcsupported() – Intel Extensible Firmware Interface User Manual

Page 246

Advertising
background image

Extensible Firmware Interface Specification

9-4

12/01/02

Version 1.10

EFI_DRIVER_BINDING_PROTOCOL.Supported()

Summary

Tests to see if this driver supports a given controller. If a child device is provided, it further tests to
see if this driver supports creating a handle for the specified child device.

Prototype

typedef
EFI_STATUS
(EFIAPI *EFI_DRIVER_BINDING_PROTOCOL_SUPPORTED) (
IN EFI_DRIVER_BINDING_PROTOCOL

*This,

IN EFI_HANDLE

ControllerHandle,

IN EFI_DEVICE_PATH_PROTOCOL

*RemainingDevicePath OPTIONAL

);

Parameters

This

A pointer to the

EFI_DRIVER_BINDING_PROTOCOL

instance.

ControllerHandle

The handle of the controller to test. This handle must support a
protocol interface that supplies an I/O abstraction to the driver.
Sometimes just the presence of this I/O abstraction is enough for
the driver to determine if it supports

ControllerHandle

.

Sometimes, the driver may use the services of the I/O abstraction
to determine if this driver supports

ControllerHandle

.

RemainingDevicePath

A pointer to the remaining portion of a device path. This
parameter is ignored by device drivers, and is optional for bus
drivers. For bus drivers, if this parameter is not

NULL

, then

the bus driver must determine if the bus controller specified
by

ControllerHandle

and the child controller specified

by

RemainingDevicePath

are both supported by this

bus driver.

Description

This function checks to see if the driver specified by

This

supports the device specified by

ControllerHandle

. Drivers will typically use the device path attached to

ControllerHandle

and/or the services from the bus I/O abstraction attached to

ControllerHandle

to determine if the driver supports

ControllerHandle

. This function

may be called many times during platform initialization. In order to reduce boot times, the tests
performed by this function must be very small, and take as little time as possible to execute. This
function must not change the state of any hardware devices, and this function must be aware that
the device specified by

ControllerHandle

may already be managed by the same driver or a

different driver. This function must match its calls to

AllocatePages()

with

FreePages()

,

AllocatePool()

with

FreePool()

, and

OpenProtocol()

with

Advertising