mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-24 22:24:37 +02:00
MdePkg/UefiLib: Abstract driver model protocol uninstallation
Provided functions in UEFILib that abstract driver model protocol uninstallation. This helps drivers to install and uninstall protocols using a library to keep things seemless. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1429 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ashish Singhal <ashishsingha@nvidia.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
938cf4c33a
commit
0290fca20f
@ -12,6 +12,7 @@
|
|||||||
of size reduction when compiler optimization is disabled. If MDEPKG_NDEBUG is
|
of size reduction when compiler optimization is disabled. If MDEPKG_NDEBUG is
|
||||||
defined, then debug and assert related macros wrapped by it are the NULL implementations.
|
defined, then debug and assert related macros wrapped by it are the NULL implementations.
|
||||||
|
|
||||||
|
Copyright (c) 2019, NVIDIA Corporation. All rights reserved.
|
||||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials are licensed and made available under
|
This program and the accompanying materials are licensed and made available under
|
||||||
the terms and conditions of the BSD License that accompanies this distribution.
|
the terms and conditions of the BSD License that accompanies this distribution.
|
||||||
@ -1283,6 +1284,7 @@ AsciiPrintXY (
|
|||||||
...
|
...
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Installs and completes the initialization of a Driver Binding Protocol instance.
|
Installs and completes the initialization of a Driver Binding Protocol instance.
|
||||||
|
|
||||||
@ -1315,6 +1317,25 @@ EfiLibInstallDriverBinding (
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Uninstalls a Driver Binding Protocol instance.
|
||||||
|
|
||||||
|
If DriverBinding is NULL, then ASSERT().
|
||||||
|
If DriverBinding can not be uninstalled, then ASSERT().
|
||||||
|
|
||||||
|
@param DriverBinding A Driver Binding Protocol instance that this driver produced.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The protocol uninstallation successfully completed.
|
||||||
|
@retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiLibUninstallDriverBinding (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Installs and completes the initialization of a Driver Binding Protocol instance and
|
Installs and completes the initialization of a Driver Binding Protocol instance and
|
||||||
optionally installs the Component Name, Driver Configuration and Driver Diagnostics Protocols.
|
optionally installs the Component Name, Driver Configuration and Driver Diagnostics Protocols.
|
||||||
@ -1354,6 +1375,31 @@ EfiLibInstallAllDriverProtocols (
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Uninstalls a Driver Binding Protocol instance and optionally uninstalls the
|
||||||
|
Component Name, Driver Configuration and Driver Diagnostics Protocols.
|
||||||
|
|
||||||
|
If DriverBinding is NULL, then ASSERT().
|
||||||
|
If the uninstallation fails, then ASSERT().
|
||||||
|
|
||||||
|
@param DriverBinding A Driver Binding Protocol instance that this driver produced.
|
||||||
|
@param ComponentName A Component Name Protocol instance that this driver produced.
|
||||||
|
@param DriverConfiguration A Driver Configuration Protocol instance that this driver produced.
|
||||||
|
@param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver produced.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The protocol uninstallation successfully completed.
|
||||||
|
@retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiLibUninstallAllDriverProtocols (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
|
||||||
|
IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, OPTIONAL
|
||||||
|
IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration, OPTIONAL
|
||||||
|
IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Installs Driver Binding Protocol with optional Component Name and Component Name 2 Protocols.
|
Installs Driver Binding Protocol with optional Component Name and Component Name 2 Protocols.
|
||||||
@ -1390,6 +1436,29 @@ EfiLibInstallDriverBindingComponentName2 (
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Uninstalls Driver Binding Protocol with optional Component Name and Component Name 2 Protocols.
|
||||||
|
|
||||||
|
If DriverBinding is NULL, then ASSERT().
|
||||||
|
If the uninstallation fails, then ASSERT().
|
||||||
|
|
||||||
|
@param DriverBinding A Driver Binding Protocol instance that this driver produced.
|
||||||
|
@param ComponentName A Component Name Protocol instance that this driver produced.
|
||||||
|
@param ComponentName2 A Component Name 2 Protocol instance that this driver produced.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The protocol installation successfully completed.
|
||||||
|
@retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiLibUninstallDriverBindingComponentName2 (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
|
||||||
|
IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, OPTIONAL
|
||||||
|
IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Installs Driver Binding Protocol with optional Component Name, Component Name 2, Driver
|
Installs Driver Binding Protocol with optional Component Name, Component Name 2, Driver
|
||||||
Configuration, Driver Configuration 2, Driver Diagnostics, and Driver Diagnostics 2 Protocols.
|
Configuration, Driver Configuration 2, Driver Diagnostics, and Driver Diagnostics 2 Protocols.
|
||||||
@ -1434,6 +1503,40 @@ EfiLibInstallAllDriverProtocols2 (
|
|||||||
IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL
|
IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Uninstalls Driver Binding Protocol with optional Component Name, Component Name 2, Driver
|
||||||
|
Configuration, Driver Configuration 2, Driver Diagnostics, and Driver Diagnostics 2 Protocols.
|
||||||
|
|
||||||
|
If DriverBinding is NULL, then ASSERT().
|
||||||
|
If the installation fails, then ASSERT().
|
||||||
|
|
||||||
|
|
||||||
|
@param DriverBinding A Driver Binding Protocol instance that this driver produced.
|
||||||
|
@param ComponentName A Component Name Protocol instance that this driver produced.
|
||||||
|
@param ComponentName2 A Component Name 2 Protocol instance that this driver produced.
|
||||||
|
@param DriverConfiguration A Driver Configuration Protocol instance that this driver produced.
|
||||||
|
@param DriverConfiguration2 A Driver Configuration Protocol 2 instance that this driver produced.
|
||||||
|
@param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver produced.
|
||||||
|
@param DriverDiagnostics2 A Driver Diagnostics Protocol 2 instance that this driver produced.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The protocol uninstallation successfully completed.
|
||||||
|
@retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiLibUninstallAllDriverProtocols2 (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
|
||||||
|
IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, OPTIONAL
|
||||||
|
IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2, OPTIONAL
|
||||||
|
IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration, OPTIONAL
|
||||||
|
IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL *DriverConfiguration2, OPTIONAL
|
||||||
|
IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics, OPTIONAL
|
||||||
|
IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Appends a formatted Unicode string to a Null-terminated Unicode string
|
Appends a formatted Unicode string to a Null-terminated Unicode string
|
||||||
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
/** @file
|
/** @file
|
||||||
Library functions that abstract driver model protocols
|
Library functions that abstract driver model protocols
|
||||||
installation.
|
installation and uninstallation.
|
||||||
|
|
||||||
|
Copyright (c) 2019, NVIDIA Corporation. All rights reserved.
|
||||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials are
|
This program and the accompanying materials are
|
||||||
licensed and made available under the terms and conditions of the BSD License
|
licensed and made available under the terms and conditions of the BSD License
|
||||||
@ -71,6 +72,44 @@ EfiLibInstallDriverBinding (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Uninstalls a Driver Binding Protocol instance.
|
||||||
|
|
||||||
|
If DriverBinding is NULL, then ASSERT().
|
||||||
|
If DriverBinding can not be uninstalled, then ASSERT().
|
||||||
|
|
||||||
|
@param DriverBinding A Driver Binding Protocol instance that this driver produced.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The protocol uninstallation successfully completed.
|
||||||
|
@retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiLibUninstallDriverBinding (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
|
||||||
|
ASSERT (DriverBinding != NULL);
|
||||||
|
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
//
|
||||||
|
// ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
|
||||||
|
//
|
||||||
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Installs and completes the initialization of a Driver Binding Protocol instance and
|
Installs and completes the initialization of a Driver Binding Protocol instance and
|
||||||
optionally installs the Component Name, Driver Configuration and Driver Diagnostics Protocols.
|
optionally installs the Component Name, Driver Configuration and Driver Diagnostics Protocols.
|
||||||
@ -203,6 +242,119 @@ EfiLibInstallAllDriverProtocols (
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Uninstalls a Driver Binding Protocol instance and optionally uninstalls the
|
||||||
|
Component Name, Driver Configuration and Driver Diagnostics Protocols.
|
||||||
|
|
||||||
|
If DriverBinding is NULL, then ASSERT().
|
||||||
|
If the uninstallation fails, then ASSERT().
|
||||||
|
|
||||||
|
@param DriverBinding A Driver Binding Protocol instance that this driver produced.
|
||||||
|
@param ComponentName A Component Name Protocol instance that this driver produced.
|
||||||
|
@param DriverConfiguration A Driver Configuration Protocol instance that this driver produced.
|
||||||
|
@param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver produced.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The protocol uninstallation successfully completed.
|
||||||
|
@retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiLibUninstallAllDriverProtocols (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
|
||||||
|
IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, OPTIONAL
|
||||||
|
IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration, OPTIONAL
|
||||||
|
IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
|
||||||
|
ASSERT (DriverBinding != NULL);
|
||||||
|
|
||||||
|
if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
|
||||||
|
if (DriverConfiguration == NULL) {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (DriverConfiguration == NULL) {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
|
||||||
|
//
|
||||||
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Installs Driver Binding Protocol with optional Component Name and Component Name 2 Protocols.
|
Installs Driver Binding Protocol with optional Component Name and Component Name 2 Protocols.
|
||||||
|
|
||||||
@ -291,6 +443,76 @@ EfiLibInstallDriverBindingComponentName2 (
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Uninstalls Driver Binding Protocol with optional Component Name and Component Name 2 Protocols.
|
||||||
|
|
||||||
|
If DriverBinding is NULL, then ASSERT().
|
||||||
|
If the uninstallation fails, then ASSERT().
|
||||||
|
|
||||||
|
@param DriverBinding A Driver Binding Protocol instance that this driver produced.
|
||||||
|
@param ComponentName A Component Name Protocol instance that this driver produced.
|
||||||
|
@param ComponentName2 A Component Name 2 Protocol instance that this driver produced.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The protocol installation successfully completed.
|
||||||
|
@retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiLibUninstallDriverBindingComponentName2 (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
|
||||||
|
IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, OPTIONAL
|
||||||
|
IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
|
||||||
|
ASSERT (DriverBinding != NULL);
|
||||||
|
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
|
||||||
|
//
|
||||||
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Installs Driver Binding Protocol with optional Component Name, Component Name 2, Driver
|
Installs Driver Binding Protocol with optional Component Name, Component Name 2, Driver
|
||||||
Configuration, Driver Configuration 2, Driver Diagnostics, and Driver Diagnostics 2 Protocols.
|
Configuration, Driver Configuration 2, Driver Diagnostics, and Driver Diagnostics 2 Protocols.
|
||||||
@ -1054,3 +1276,751 @@ EfiLibInstallAllDriverProtocols2 (
|
|||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Uninstalls Driver Binding Protocol with optional Component Name, Component Name 2, Driver
|
||||||
|
Configuration, Driver Configuration 2, Driver Diagnostics, and Driver Diagnostics 2 Protocols.
|
||||||
|
|
||||||
|
If DriverBinding is NULL, then ASSERT().
|
||||||
|
If the installation fails, then ASSERT().
|
||||||
|
|
||||||
|
|
||||||
|
@param DriverBinding A Driver Binding Protocol instance that this driver produced.
|
||||||
|
@param ComponentName A Component Name Protocol instance that this driver produced.
|
||||||
|
@param ComponentName2 A Component Name 2 Protocol instance that this driver produced.
|
||||||
|
@param DriverConfiguration A Driver Configuration Protocol instance that this driver produced.
|
||||||
|
@param DriverConfiguration2 A Driver Configuration Protocol 2 instance that this driver produced.
|
||||||
|
@param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver produced.
|
||||||
|
@param DriverDiagnostics2 A Driver Diagnostics Protocol 2 instance that this driver produced.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS The protocol uninstallation successfully completed.
|
||||||
|
@retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
EfiLibUninstallAllDriverProtocols2 (
|
||||||
|
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
|
||||||
|
IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, OPTIONAL
|
||||||
|
IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2, OPTIONAL
|
||||||
|
IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration, OPTIONAL
|
||||||
|
IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL *DriverConfiguration2, OPTIONAL
|
||||||
|
IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics, OPTIONAL
|
||||||
|
IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
|
||||||
|
ASSERT (DriverBinding != NULL);
|
||||||
|
|
||||||
|
if (DriverConfiguration2 == NULL) {
|
||||||
|
if (DriverConfiguration == NULL) {
|
||||||
|
if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
|
||||||
|
if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
|
||||||
|
if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (DriverConfiguration == NULL) {
|
||||||
|
if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
|
||||||
|
if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
|
||||||
|
if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Status = gBS->UninstallMultipleProtocolInterfaces (
|
||||||
|
DriverBinding->DriverBindingHandle,
|
||||||
|
&gEfiDriverBindingProtocolGuid, DriverBinding,
|
||||||
|
&gEfiComponentNameProtocolGuid, ComponentName,
|
||||||
|
&gEfiComponentName2ProtocolGuid, ComponentName2,
|
||||||
|
&gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
|
||||||
|
&gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
|
||||||
|
&gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
|
||||||
|
&gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
|
||||||
|
//
|
||||||
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user