beautypg.com

Status codes returned, Examples – Intel Extensible Firmware Interface User Manual

Page 248

background image

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;