beautypg.com

Status codes returned – Intel Extensible Firmware Interface User Manual

Page 161

background image

Services — Boot Services

Version 1.10

12/01/02

5-63

Each of the four groups of image handles listed above is tested against

ControllerHandle

in

order by using the

EFI_DRIVER_BINDING_PROTOCOL

service

Supported()

.

RemainingDevicePath

is passed into

Supported()

unmodified. The first image handle

whose

Supported()

service returns

EFI_SUCCESS

is marked so the image handle will not be

tried again during this call to

ConnectController()

. Then, the

Start()

service of the

EFI_DRIVER_BINDING_PROTOCOL

is called for

ControllerHandle

. Once again,

RemainingDevicePath

is passed in unmodified. Every time

Supported()

returns

EFI_SUCCESS

, the search for drivers restarts with the highest precedence image handle. This

process is repeated until no image handles pass the

Supported()

check.

If at least one image handle returned

EFI_SUCCESS

from its

Start()

service, then

EFI_SUCCESS

is returned.

If no image handles returned

EFI_SUCCESS

from their

Start()

service then

EFI_NOT_FOUND

is returned unless

RemainingDevicePath

is not

NULL

, and

RemainingDevicePath

is an End Node. In this special case,

EFI_SUCCESS

is returned

because it is not an error to fail to start a child controller that is specified by an End Device Path
Node.

Status Codes Returned

EFI_SUCCESS

One or more drivers were connected to

ControllerHandle

.

EFI_SUCCESS

No drivers were connected to

ControllerHandle

, but

RemainingDevicePath

is not

NULL

, and it is an End Device

PathNode.

EFI_INVALID_PARAMETER

ControllerHandle

is not a valid

EFI_HANDLE

.

EFI_NOT_FOUND

There are no

EFI_DRIVER_BINDING_PROTOCOL

instances

present in the system.

EFI_NOT_FOUND

No drivers were connected to

ControllerHandle

.