Status codes returned – Intel Extensible Firmware Interface User Manual
Page 161

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