Intel Extensible Firmware Interface User Manual
Page 287

Protocols
— EFI Driver Model
Version 1.10
12/01/02
9-45
ErrorType
A GUID that defines the format of the data returned in
Buffer
.
BufferSize
The size, in bytes, of the data returned in
Buffer
.
Buffer
A buffer that contains a Null-terminated Unicode string plus
some additional data whose format is defined by
ErrorType
.
Buffer
is allocated by this function with
and it is the caller’s responsibility to free it with a call to
Description
This function runs diagnostics on the controller specified by
ControllerHandle
and
ChildHandle
.
DiagnoticType
specifies the type of diagnostics to perform on the controller
specified by
ControllerHandle
and
ChildHandle
. If the driver specified by
This
does
not support the language specified by
Language
, then
EFI_UNSUPPORTED
is returned. If the
controller specified by
ControllerHandle
and
ChildHandle
is not supported by the driver
specified by
This
, then
EFI_UNSUPPORTED
is returned. If the diagnostics type specified by
DiagnosticType
is not supported by this driver, then
EFI_UNSUPPORTED
is returned. If
there are not enough resources available to complete the diagnostic, then
EFI_OUT_OF_RESOURCES
is returned. If the controller specified by
ControllerHandle
and
ChildHandle
passes the diagnostic, then
EFI_SUCCESS
is returned. Otherwise,
EFI_DEVICE_ERROR
is returned.
If the language specified by
Language
is supported by this driver, then status information is
returned in
ErrorType
,
BufferSize
, and
Buffer
.
Buffer
contains a Null-terminated
Unicode string followed by additional data whose format is defined by
ErrorType
.
BufferSize
is the size of
Buffer
is bytes, and it is the caller's responsibility to call
FreePool()
on
Buffer
when the caller is done with the return data. If there are not enough
resources available to return the status information, then
EFI_OUT_OF_RESOURCES
is returned.
Related Definitions
//*******************************************************
// EFI_DRIVER_DIAGNOSTIC_TYPE
//*******************************************************
typedef enum {
EfiDriverDiagnosticTypeStandard = 0,
EfiDriverDiagnosticTypeExtended = 1,
EfiDriverDiagnosticTypeManufacturing = 2,
EfiDriverDiagnosticTypeMaximum
} EFI_DRIVER_DIAGNOSTIC_TYPE;