EFI_DRIVER_BINDING_PROTOCOL gAbcDriverBinding = {
AbcDriverBindingSupported,
EFI_COMPONENT_NAME_PROTOCOL gAbcComponentName = {
AbcComponentNameGetDriverName,
AbcComponentNameGetControllerName,
EFI_COMPONENT_NAME2_PROTOCOL gAbcComponentName2 = {
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME) AbcComponentNameGetDriverName,
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)
AbcComponentNameGetControllerName,
EFI_DRIVER_DIAGNOSTICS_PROTOCOL gAbcDriverDiagnostics = {
AbcDriverDiagnosticsRunDiagnostics,
EFI_DRIVER_DIAGNOSTICS2_PROTOCOL gAbcDriverDiagnostics2 = {
(EFI_DRIVER_DIAGNOSTICS2_RUN_DIAGNOSTICS) gAbcDriverDiagnosticsRunDiagnostics,
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
// Initialize a simple EFI driver that follows the EFI Driver Model
return EfiLibInstallAllDriverProtocols (
ImageHandle, // Driver's image handle
SystemTable, // EFI System Table Pointer
&gAbcDriverBinding, // Required parameters
// Handle for driver-related protocols &gAbcComponentName,
// Component Name Procol. May be NULL.
&gAbcComponentName2, // Component Name2 Procol. May be NULL.
NULL, // Configuration Protocol. May be NULL.
NULL // Configuration Protocol2 May be NULL.
&gAbcDriverDiagnostics, // Diagnostics Protocol. May be NULL.
&gAbcDriverDiagnostics2,// Diagnostics Protocol2 May be NULL.