Extensible Firmware Interface Specification
9-6 12/01/02 Version 1.10
Status Codes Returned
EFI_SUCCESS
The device specified by
ControllerHandle and
RemainingDevicePath is supported by the driver specified by
This.
EFI_ALREADY_STARTED
The device specified by
ControllerHandle and
RemainingDevicePath is already being managed by the driver
specified by
This.
EFI_ACCESS_DENIED
The device specified by
ControllerHandle and
RemainingDevicePath is already being managed by a different
driver or an application that requires exclusive access.
EFI_UNSUPPORTED
The device specified by
ControllerHandle and
RemainingDevicePath is not supported by the driver specified by
This.
Examples
extern EFI_GUID gEfiDriverBindingProtocolGuid;
EFI_HANDLE DriverImageHandle;
EFI_HANDLE ControllerHandle;
EFI_DRIVER_BINDING_PROTOCOL *DriverBinding;
EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath;
//
// Use the DriverImageHandle to get the Driver Binding Protocol instance
//
Status = gBS->OpenProtocol (
DriverImageHandle,
&gEfiDriverBindingProtocolGuid,
&DriverBinding,
DriverImageHandle,
NULL,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
);
if (EFI_ERROR (Status)) {
return Status;
}
//
// EXAMPLE #1
//
// Use the Driver Binding Protocol instance to test to see if the
// driver specified by DriverImageHandle supports the controller
// specified by ControllerHandle
//
Status = DriverBinding->Supported (
DriverBinding,
ControllerHandle,
NULL
);
return Status;