From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=203.18.50.4; helo=nat-hk.nvidia.com; envelope-from=ashishsingha@nvidia.com; receiver=edk2-devel@lists.01.org Received: from nat-hk.nvidia.com (nat-hk.nvidia.com [203.18.50.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 87FC421B02822 for ; Sun, 6 Jan 2019 19:00:09 -0800 (PST) Received: from hkpgpgate102.nvidia.com (Not Verified[10.18.92.9]) by nat-hk.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Mon, 07 Jan 2019 11:00:07 +0800 Received: from HKMAIL102.nvidia.com ([10.18.16.11]) by hkpgpgate102.nvidia.com (PGP Universal service); Sun, 06 Jan 2019 19:00:07 -0800 X-PGP-Universal: processed; by hkpgpgate102.nvidia.com on Sun, 06 Jan 2019 19:00:07 -0800 Received: from HKMAIL104.nvidia.com (10.18.16.13) by HKMAIL102.nvidia.com (10.18.16.11) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 7 Jan 2019 03:00:05 +0000 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (104.47.40.55) by HKMAIL104.nvidia.com (10.18.16.13) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Mon, 7 Jan 2019 03:00:06 +0000 Received: from BYAPR12MB2743.namprd12.prod.outlook.com (20.177.125.220) by BYAPR12MB2935.namprd12.prod.outlook.com (20.179.91.204) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1495.6; Mon, 7 Jan 2019 03:00:02 +0000 Received: from BYAPR12MB2743.namprd12.prod.outlook.com ([fe80::d51a:3dbb:3b90:178b]) by BYAPR12MB2743.namprd12.prod.outlook.com ([fe80::d51a:3dbb:3b90:178b%5]) with mapi id 15.20.1495.011; Mon, 7 Jan 2019 03:00:02 +0000 From: Ashish Singhal To: "Gao, Liming" , "edk2-devel@lists.01.org" Thread-Topic: [edk2] [PATCH v2 3/4] MdePkg/UefiLib: Simplify protocol un/installation abstraction Thread-Index: AQHUpiCSunhrVfRWJE27tpsJ19buZaWjHQtA Date: Mon, 7 Jan 2019 03:00:01 +0000 Message-ID: References: <4A89E2EF3DFEDB4C8BFDE51014F606A14E3ACA33@SHSMSX152.ccr.corp.intel.com> In-Reply-To: <4A89E2EF3DFEDB4C8BFDE51014F606A14E3ACA33@SHSMSX152.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Enabled=True; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_SiteId=43083d15-7273-40c1-b7db-39efd9ccc17a; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Owner=ashishsingha@nvidia.com; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_SetDate=2019-01-07T02:59:58.8034404Z; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Name=Unrestricted; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Application=Microsoft Azure Information Protection; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Extended_MSFT_Method=Automatic; Sensitivity=Unrestricted authentication-results: spf=none (sender IP is ) smtp.mailfrom=ashishsingha@nvidia.com; x-originating-ip: [8.46.90.104] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BYAPR12MB2935; 6:e5KPckMqV0lS3G8VbotiU+kD7DnnxR+734J9GIvLOzNpCuo4SyQaCv0gufZQ2REWOcGIIQ/BtsMP31SLTFydvAI2deCurQliw8CzcaVjYaul8N7AzVhQMi29gWiEhXt9/kvW0lcu2J1IO4e+BzJMLcQRskqVuWxei/0WX7fK2n2RpJgsO/dNShz8UQ+/bMyPJFwolWR0mNG0R3JWnZG1351MlhZLTvtV/5mWf4DeEWyZrTqVJaYK8GAkI/QDm+tYXx1E1W4H8WhvlRk1CVtT13TGMA+HEi64WqmXFUxeOCKO9sqJHOeln9/OUk7dtbHBbvGhvv+E5gItvWvGQwWpxP0eRpD6NcLci7o5X1+MUyh2+mFLIlLAFWJKIuyJNLXKjMT5V/q3EFc5/XQ5+276wThcSUrRLAsxqNCbHuAFxSjXSNtsfmeb9u9RO6TPP2v75H1kwB9fWr01r8sBdXsO5Q==; 5:iHmnz7s2DFLuScr2aWh0bsMFqH8xBDZ9cpBZxHrj+AQLpfhc6HCPhvndy5juxfb0yNo9zDRIsz30PtuB/FgMGH7AuDcZVuNl/1Km81Bnt7JgnvT130fWv8RdeAXGDPcxfd5lyOxh5it08xnjSDEIIk36Z5Fog3wNBF2jEUVKp5fL7oeyZaewKe1QueRpzVBjSzNz+uUKaVIqlau0S6Q4RQ==; 7:HnauYULMV6iAB8jlcW2cIjYN0yJinGP73OYkcqujFfwqf9im+P23CPCrg0Vk7EiNMpjy2tD3orqZl9lwUJlU/sIC8LLhls+8iXEtgdhEiSEcNrm5SvJABRCu33RPA3QQdBFTEcVnf6gYK7SH4p6T3w== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 1617f156-4dd1-401d-c680-08d6744c37cd x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(2017052603328)(7153060)(7193020); SRVR:BYAPR12MB2935; x-ms-traffictypediagnostic: BYAPR12MB2935: x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(3230021)(908002)(999002)(5005026)(6040522)(8220060)(2401047)(8121501046)(93006095)(93001095)(3002001)(3231475)(944501520)(52105112)(10201501046)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:BYAPR12MB2935; BCL:0; PCL:0; RULEID:; SRVR:BYAPR12MB2935; x-forefront-prvs: 0910AAF391 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(979002)(366004)(39850400004)(136003)(346002)(376002)(396003)(199004)(189003)(13464003)(4744004)(476003)(6246003)(55016002)(486006)(102836004)(2906002)(66066001)(99286004)(81156014)(7736002)(25786009)(71200400001)(2501003)(53936002)(81166006)(316002)(8676002)(19627235002)(14444005)(110136005)(256004)(6436002)(86362001)(9686003)(6306002)(186003)(105586002)(305945005)(26005)(8936002)(53946003)(229853002)(71190400001)(478600001)(106356001)(97736004)(6116002)(3846002)(68736007)(74316002)(6506007)(7696005)(33656002)(5660300001)(446003)(11346002)(53546011)(14454004)(76176011)(959014)(559001)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR12MB2935; H:BYAPR12MB2743.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nvidia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: jfzM98IZ0XWSwL12aIJM1mHNtH9Z4GMrIktIYKklpLxmfxA/Lc3QRXJuERVbBhnGGw+IpyTBWRspefDzuOWIL0FGM9TdaGziIVsBp1sWao+Z740H0rdVrdfex75/CGXmdpcedrYV74WokxNHzBWYX1NkOT6VK0Zdg3+6YKcIQ0HlQ+5MP1yD423bD2eHSIJqqow0UhkcSO3GUjUxDuhp3fBX/szB2kfr64BL/6mk4773oL6TcbB8LTjTtufaZy0MaTqswTZFgVAWekbuEqCFwUfH7qa40aNf+k+KjxIwoT6LI3y8tjVhT5KnUZjZefwN spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 1617f156-4dd1-401d-c680-08d6744c37cd X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jan 2019 03:00:02.0341 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB2935 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1546830008; bh=M15AHsH3tHUm8mKJlE2loFYgQ+PZnKicrsuTBGuwfd0=; h=X-PGP-Universal:From:To:Subject:Thread-Topic:Thread-Index:Date: Message-ID:References:In-Reply-To:Accept-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:msip_labels:authentication-results: x-originating-ip:x-ms-publictraffictype: x-microsoft-exchange-diagnostics: x-ms-exchange-antispam-srfa-diagnostics: x-ms-office365-filtering-correlation-id:x-microsoft-antispam: x-ms-traffictypediagnostic:x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test:x-forefront-prvs: x-forefront-antispam-report:received-spf: x-ms-exchange-senderadcheck:x-microsoft-antispam-message-info: spamdiagnosticoutput:spamdiagnosticmetadata:MIME-Version: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg: Content-Language:Content-Type:Content-Transfer-Encoding; b=m0t9MCnuhIcmmGWROClJcLRl7aqR8tP3DS/3Mc+e6AwQHSSuXpwZU02dNazfnoBRN xVyY+Z/ahgzrExTJEMCvwKETFlyilDXbCggdlFzi0GE4maOFeFHlcbURp+f1GYQ1gx epfAhTX1NB/68mIRvLu5ctKUGQjTxo+CTBVlSY6u63azntXhRd7FQG+YVSQDtPF/2d BWu5QAeWbHO55T8R7OomYbpIDBk9zG0vtjmsvCXvMeh++zd2kjqoOSA5vy/1D4hjvn Hw2chvrUlXEtuTqKAj9u0BDi5RefbiUyyCkJsVPxPwTZZ5E3i6nQL4coGChnZTkKef /+gn2ZLCrWSxQ== Subject: Re: [PATCH v2 3/4] MdePkg/UefiLib: Simplify protocol un/installation abstraction X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jan 2019 03:00:11 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hello Liming, I am not touching APIs for Install and am OK keeping Uninstall API same a= s what I had in patch 1/4. I thought it would be easier for the developer= =20to keep the interface similar to install but I do not have a strong pr= eference either way. If you are OK with the Uninstall API as in patch 1/4= , I am OK submitting a new patch where I can squash 1/4 and 3/4 together = into a single commit and keep API as in 1/4. Thanks Ashish -----Original Message----- From: Gao, Liming =20 Sent: Sunday, January 6, 2019 5:33 PM To: Ashish Singhal ; edk2-devel@lists.01.org Subject: RE: [edk2] [PATCH v2 3/4] MdePkg/UefiLib: Simplify protocol un/i= nstallation abstraction Ashish: =20 UefiLib implementation simplification doesn't require to change libra= ry APIs. UninstallApi() interfaces are not required to be updated. Below = Install API can still be kept. I don't think we need to keep the same int= erfaces for Install and Uninstall APIs.=20 EfiLibUninstallAllDriverProtocols2 ( =20 IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, =20 IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, OP= TIONAL =20 IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2, OP= TIONAL =20 IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration, OP= TIONAL =20 IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL *DriverConfiguration2, OP= TIONAL =20 IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics, OP= TIONAL =20 IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OP= TIONAL =20 ); Thanks Liming >-----Original Message----- >From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of >Ashish Singhal >Sent: Saturday, January 05, 2019 7:07 AM >To: edk2-devel@lists.01.org >Cc: Ashish Singhal >Subject: [edk2] [PATCH v2 3/4] MdePkg/UefiLib: Simplify protocol >un/installation abstraction > >Add a helper function to operate upon protocol installation and >uninstallation instead of every function doing it by itself. > >Contributed-under: TianoCore Contribution Agreement 1.1 >Signed-off-by: Ashish Singhal >--- > MdePkg/Include/Library/UefiLib.h | 26 +- > MdePkg/Library/UefiLib/UefiDriverModel.c | 1980 ++++-------------------= ------- > 2 files changed, 270 insertions(+), 1736 deletions(-) > >diff --git a/MdePkg/Include/Library/UefiLib.h >b/MdePkg/Include/Library/UefiLib.h >index 08222d4..fbc9739 100644 >--- a/MdePkg/Include/Library/UefiLib.h >+++ b/MdePkg/Include/Library/UefiLib.h >@@ -1323,7 +1323,10 @@ EfiLibInstallDriverBinding ( > If DriverBinding is NULL, then ASSERT(). > If DriverBinding can not be uninstalled, then ASSERT(). > >+ @param ImageHandle The image handle of the driver. >+ @param SystemTable The EFI System Table that was passed to = the >driver's entry point. > @param DriverBinding A Driver Binding Protocol instance that = this driver >produced. >+ @param DriverBindingHandle The handle that DriverBinding is to be >installed onto. > > @retval EFI_SUCCESS The protocol uninstallation successfull= y >completed. > @retval Others Status from gBS- >>UninstallMultipleProtocolInterfaces(). >@@ -1332,7 +1335,10 @@ EfiLibInstallDriverBinding ( > EFI_STATUS > EFIAPI > EfiLibUninstallDriverBinding ( >- IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding >+ IN CONST EFI_HANDLE ImageHandle, >+ IN CONST EFI_SYSTEM_TABLE *SystemTable, >+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, >+ IN EFI_HANDLE DriverBindingHandle > ); > > >@@ -1382,7 +1388,10 @@ EfiLibInstallAllDriverProtocols ( > If DriverBinding is NULL, then ASSERT(). > If the uninstallation fails, then ASSERT(). > >+ @param ImageHandle The image handle of the driver. >+ @param SystemTable The EFI System Table that was passed to = the >driver's entry point. > @param DriverBinding A Driver Binding Protocol instance that = this driver >produced. >+ @param DriverBindingHandle The handle that DriverBinding is to be >installed onto. > @param ComponentName A Component Name Protocol instance that >this driver produced. > @param DriverConfiguration A Driver Configuration Protocol instance= =20that >this driver produced. > @param DriverDiagnostics A Driver Diagnostics Protocol instance t= hat this >driver produced. >@@ -1394,7 +1403,10 @@ EfiLibInstallAllDriverProtocols ( > EFI_STATUS > EFIAPI > EfiLibUninstallAllDriverProtocols ( >+ IN CONST EFI_HANDLE ImageHandle, >+ IN CONST EFI_SYSTEM_TABLE *SystemTable, > IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, >+ IN EFI_HANDLE DriverBindingHandle, > IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, >OPTIONAL > IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration, >OPTIONAL > IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics >OPTIONAL >@@ -1442,7 +1454,10 @@ EfiLibInstallDriverBindingComponentName2 ( > If DriverBinding is NULL, then ASSERT(). > If the uninstallation fails, then ASSERT(). > >+ @param ImageHandle The image handle of the driver. >+ @param SystemTable The EFI System Table that was passed to = the >driver's entry point. > @param DriverBinding A Driver Binding Protocol instance that = this driver >produced. >+ @param DriverBindingHandle The handle that DriverBinding is to be >installed onto. > @param ComponentName A Component Name Protocol instance that >this driver produced. > @param ComponentName2 A Component Name 2 Protocol instance tha= t >this driver produced. > >@@ -1453,7 +1468,10 @@ EfiLibInstallDriverBindingComponentName2 ( > EFI_STATUS > EFIAPI > EfiLibUninstallDriverBindingComponentName2 ( >+ IN CONST EFI_HANDLE ImageHandle, >+ IN CONST EFI_SYSTEM_TABLE *SystemTable, > IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, >+ IN EFI_HANDLE DriverBindingHandle, > IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, >OPTIONAL > IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 >OPTIONAL > ); >@@ -1512,7 +1530,10 @@ EfiLibInstallAllDriverProtocols2 ( > If the installation fails, then ASSERT(). > > >+ @param ImageHandle The image handle of the driver. >+ @param SystemTable The EFI System Table that was passed to= =20the >driver's entry point. > @param DriverBinding A Driver Binding Protocol instance that= =20this driver >produced. >+ @param DriverBindingHandle The handle that DriverBinding is to be >installed onto. > @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 instanc= e that >this driver produced. >@@ -1527,7 +1548,10 @@ EfiLibInstallAllDriverProtocols2 ( > EFI_STATUS > EFIAPI > EfiLibUninstallAllDriverProtocols2 ( >+ IN CONST EFI_HANDLE ImageHandle, >+ IN CONST EFI_SYSTEM_TABLE *SystemTable, > IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, >+ IN EFI_HANDLE DriverBindingHandle, > IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, >OPTIONAL > IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2, >OPTIONAL > IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration, >OPTIONAL >diff --git a/MdePkg/Library/UefiLib/UefiDriverModel.c >b/MdePkg/Library/UefiLib/UefiDriverModel.c >index 262d8bc..600a2be 100644 >--- a/MdePkg/Library/UefiLib/UefiDriverModel.c >+++ b/MdePkg/Library/UefiLib/UefiDriverModel.c >@@ -17,6 +17,130 @@ > > #include "UefiLibInternal.h" > >+ >+#define MAX_SUPPORTED_PROTOCOLS 7 >+typedef struct { >+ EFI_GUID *Guid; >+ VOID *Interface; >+} EFI_PROCESS_PROTOCOL; >+ >+ >+static >+EFI_STATUS >+EFIAPI >+EfiLibProcessProtocol ( >+ IN CONST EFI_HANDLE ImageHandle, >+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, >+ IN EFI_HANDLE DriverBindingHandle, >+ IN BOOLEAN Install, >+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, >+ IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2, >+ IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration, >+ IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL >*DriverConfiguration2, >+ IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics, >+ IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 >+ ) >+{ >+ EFI_STATUS Status; >+ EFI_PROCESS_PROTOCOL ProtocolArray[MAX_SUPPORTED_PROTOCOLS]; >+ UINT8 ProtocolCount; >+ >+ ASSERT (DriverBinding !=3D NULL); >+ >+ // >+ // ZI the ProtocolArray structure. Both InstallMultipleProtocolInterf= aces >+ // and UninstallMultipleProtocolInterfaces would stop processing >ProtocolArray >+ // elements as soon as they encounter a NULL. >+ // >+ ZeroMem(ProtocolArray, sizeof(ProtocolArray)); >+ ProtocolCount =3D 0; >+ >+ // >+ // Populate ProtocolArray with valid protocol interfaces. >+ // >+ ProtocolArray[ProtocolCount].Guid =3D &gEfiDriverBindingProtocolGuid;= >+ ProtocolArray[ProtocolCount].Interface =3D DriverBinding; >+ ProtocolCount++; >+ >+ if (ComponentName !=3D NULL >&& !FeaturePcdGet(PcdComponentNameDisable)) { >+ ProtocolArray[ProtocolCount].Guid =3D &gEfiComponentNameProtocolGui= d; >+ ProtocolArray[ProtocolCount].Interface =3D (VOID *)ComponentName; >+ ProtocolCount++; >+ } >+ >+ if (ComponentName2 !=3D NULL >&& !FeaturePcdGet(PcdComponentName2Disable)) { >+ ProtocolArray[ProtocolCount].Guid =3D >&gEfiComponentName2ProtocolGuid; >+ ProtocolArray[ProtocolCount].Interface =3D (VOID *)ComponentName2; >+ ProtocolCount++; >+ } >+ >+ if (DriverConfiguration !=3D NULL) { >+ ProtocolArray[ProtocolCount].Guid =3D >&gEfiDriverConfigurationProtocolGuid; >+ ProtocolArray[ProtocolCount].Interface =3D (VOID *)DriverConfigurat= ion; >+ ProtocolCount++; >+ } >+ >+ if (DriverConfiguration2 !=3D NULL) { >+ ProtocolArray[ProtocolCount].Guid =3D >&gEfiDriverConfiguration2ProtocolGuid; >+ ProtocolArray[ProtocolCount].Interface =3D (VOID *)DriverConfigurat= ion2; >+ ProtocolCount++; >+ } >+ >+ if (DriverDiagnostics !=3D NULL >&& !FeaturePcdGet(PcdDriverDiagnosticsDisable)) { >+ ProtocolArray[ProtocolCount].Guid =3D &gEfiDriverDiagnosticsProtoco= lGuid; >+ ProtocolArray[ProtocolCount].Interface =3D (VOID *)DriverDiagnostic= s; >+ ProtocolCount++; >+ } >+ >+ if (DriverDiagnostics2 !=3D NULL >&& !FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >+ ProtocolArray[ProtocolCount].Guid =3D &gEfiDriverDiagnostics2Protoc= olGuid; >+ ProtocolArray[ProtocolCount].Interface =3D (VOID *)DriverDiagnostic= s2; >+ ProtocolCount++; >+ } >+ >+ if (Install) { >+ // >+ // Update the ImageHandle and DriverBindingHandle fields of the Dri= ver >Binding Protocol >+ // >+ DriverBinding->ImageHandle =3D ImageHandle; >+ DriverBinding->DriverBindingHandle =3D DriverBindingHandle; >+ >+ Status =3D gBS->InstallMultipleProtocolInterfaces ( >+ &DriverBinding->DriverBindingHandle, >+ ProtocolArray[0].Guid, ProtocolArray[0].Interface, >+ ProtocolArray[1].Guid, ProtocolArray[1].Interface, >+ ProtocolArray[2].Guid, ProtocolArray[2].Interface, >+ ProtocolArray[3].Guid, ProtocolArray[3].Interface, >+ ProtocolArray[4].Guid, ProtocolArray[4].Interface, >+ ProtocolArray[5].Guid, ProtocolArray[5].Interface, >+ ProtocolArray[6].Guid, ProtocolArray[6].Interface, >+ NULL >+ ); >+ } else { >+ Status =3D gBS->UninstallMultipleProtocolInterfaces ( >+ DriverBinding->DriverBindingHandle, >+ ProtocolArray[0].Guid, ProtocolArray[0].Interface, >+ ProtocolArray[1].Guid, ProtocolArray[1].Interface, >+ ProtocolArray[2].Guid, ProtocolArray[2].Interface, >+ ProtocolArray[3].Guid, ProtocolArray[3].Interface, >+ ProtocolArray[4].Guid, ProtocolArray[4].Interface, >+ ProtocolArray[5].Guid, ProtocolArray[5].Interface, >+ ProtocolArray[6].Guid, ProtocolArray[6].Interface, >+ NULL >+ ); >+ } >+ >+ // >+ // ASSERT if the call to InstallMultipleProtocolInterfaces() or >+ // UninstallMultipleProtocolInterfaces() failed >+ // >+ ASSERT_EFI_ERROR (Status); >+ >+ return Status; >+} >+ >+ >+ > /** > Installs and completes the initialization of a Driver Binding Protoco= l instance. > >@@ -48,27 +172,18 @@ EfiLibInstallDriverBinding ( > IN EFI_HANDLE DriverBindingHandle > ) > { >- EFI_STATUS Status; >- >- ASSERT (DriverBinding !=3D NULL); >- >- // >- // Update the ImageHandle and DriverBindingHandle fields of the Drive= r >Binding Protocol >- // >- DriverBinding->ImageHandle =3D ImageHandle; >- DriverBinding->DriverBindingHandle =3D DriverBindingHandle; >- >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- NULL >- ); >- // >- // ASSERT if the call to InstallMultipleProtocolInterfaces() failed >- // >- ASSERT_EFI_ERROR (Status); >- >- return Status; >+ return EfiLibProcessProtocol ( >+ ImageHandle, >+ DriverBinding, >+ DriverBindingHandle, >+ TRUE, >+ NULL, >+ NULL, >+ NULL, >+ NULL, >+ NULL, >+ NULL >+ ); > } > > >@@ -79,7 +194,10 @@ EfiLibInstallDriverBinding ( > If DriverBinding is NULL, then ASSERT(). > If DriverBinding can not be uninstalled, then ASSERT(). > >+ @param ImageHandle The image handle of the driver. >+ @param SystemTable The EFI System Table that was passed to = the >driver's entry point. > @param DriverBinding A Driver Binding Protocol instance that = this driver >produced. >+ @param DriverBindingHandle The handle that DriverBinding is to be >installed onto. > > @retval EFI_SUCCESS The protocol uninstallation successfull= y >completed. > @retval Others Status from gBS- >>UninstallMultipleProtocolInterfaces(). >@@ -88,24 +206,24 @@ EfiLibInstallDriverBinding ( > EFI_STATUS > EFIAPI > EfiLibUninstallDriverBinding ( >- IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding >+ IN CONST EFI_HANDLE ImageHandle, >+ IN CONST EFI_SYSTEM_TABLE *SystemTable, >+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, >+ IN EFI_HANDLE DriverBindingHandle > ) > { >- EFI_STATUS Status; >- >- ASSERT (DriverBinding !=3D NULL); >- >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- NULL >- ); >- // >- // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed= >- // >- ASSERT_EFI_ERROR (Status); >- >- return Status; >+ return EfiLibProcessProtocol ( >+ ImageHandle, >+ DriverBinding, >+ DriverBindingHandle, >+ FALSE, >+ NULL, >+ NULL, >+ NULL, >+ NULL, >+ NULL, >+ NULL >+ ); > } > > >@@ -148,96 +266,18 @@ EfiLibInstallAllDriverProtocols ( > IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics >OPTIONAL > ) > { >- EFI_STATUS Status; >- >- ASSERT (DriverBinding !=3D NULL); >- >- // >- // Update the ImageHandle and DriverBindingHandle fields of the Drive= r >Binding Protocol >- // >- DriverBinding->ImageHandle =3D ImageHandle; >- DriverBinding->DriverBindingHandle =3D DriverBindingHandle; >- >- if (DriverDiagnostics =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnosticsDisable)) { >- if (DriverConfiguration =3D=3D NULL) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- &gEfiComponentNameProtocolGuid, ComponentName, >- NULL >- ); >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, DriverCon= figuration, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, DriverCon= figuration, >- NULL >- ); >- } >- } >- } else { >- if (DriverConfiguration =3D=3D NULL) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBindi= ng, >- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagn= ostics, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBindi= ng, >- &gEfiComponentNameProtocolGuid, ComponentNa= me, >- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagn= ostics, >- NULL >- ); >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, DriverCon= figuration, >- &gEfiDriverDiagnosticsProtocolGuid, DriverDia= gnostics, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, DriverCon= figuration, >- &gEfiDriverDiagnosticsProtocolGuid, DriverDia= gnostics, >- NULL >- ); >- } >- } >- } >- >- // >- // ASSERT if the call to InstallMultipleProtocolInterfaces() failed >- // >- ASSERT_EFI_ERROR (Status); >- >- return Status; >+ return EfiLibProcessProtocol ( >+ ImageHandle, >+ DriverBinding, >+ DriverBindingHandle, >+ TRUE, >+ ComponentName, >+ NULL, >+ DriverConfiguration, >+ NULL, >+ DriverDiagnostics, >+ NULL >+ ); > } > > >@@ -249,7 +289,10 @@ EfiLibInstallAllDriverProtocols ( > If DriverBinding is NULL, then ASSERT(). > If the uninstallation fails, then ASSERT(). > >+ @param ImageHandle The image handle of the driver. >+ @param SystemTable The EFI System Table that was passed to = the >driver's entry point. > @param DriverBinding A Driver Binding Protocol instance that = this driver >produced. >+ @param DriverBindingHandle The handle that DriverBinding is to be >installed onto. > @param ComponentName A Component Name Protocol instance that >this driver produced. > @param DriverConfiguration A Driver Configuration Protocol instance= =20that >this driver produced. > @param DriverDiagnostics A Driver Diagnostics Protocol instance t= hat this >driver produced. >@@ -261,96 +304,27 @@ EfiLibInstallAllDriverProtocols ( > EFI_STATUS > EFIAPI > EfiLibUninstallAllDriverProtocols ( >+ IN CONST EFI_HANDLE ImageHandle, >+ IN CONST EFI_SYSTEM_TABLE *SystemTable, > IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, >+ IN EFI_HANDLE DriverBindingHandle, > 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 !=3D NULL); >- >- if (DriverDiagnostics =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnosticsDisable)) { >- if (DriverConfiguration =3D=3D NULL) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- &gEfiComponentNameProtocolGuid, ComponentName, >- NULL >- ); >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, DriverCon= figuration, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, DriverCon= figuration, >- NULL >- ); >- } >- } >- } else { >- if (DriverConfiguration =3D=3D NULL) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBindi= ng, >- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagn= ostics, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBindi= ng, >- &gEfiComponentNameProtocolGuid, ComponentNa= me, >- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagn= ostics, >- NULL >- ); >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, DriverCon= figuration, >- &gEfiDriverDiagnosticsProtocolGuid, DriverDia= gnostics, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, DriverCon= figuration, >- &gEfiDriverDiagnosticsProtocolGuid, DriverDia= gnostics, >- NULL >- ); >- } >- } >- } >- >- // >- // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed= >- // >- ASSERT_EFI_ERROR (Status); >- >- return Status; >+ return EfiLibProcessProtocol ( >+ ImageHandle, >+ DriverBinding, >+ DriverBindingHandle, >+ FALSE, >+ ComponentName, >+ NULL, >+ DriverConfiguration, >+ NULL, >+ DriverDiagnostics, >+ NULL >+ ); > } > > >@@ -389,56 +363,18 @@ EfiLibInstallDriverBindingComponentName2 ( > IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 >OPTIONAL > ) > { >- EFI_STATUS Status; >- >- ASSERT (DriverBinding !=3D NULL); >- >- // >- // Update the ImageHandle and DriverBindingHandle fields of the Drive= r >Binding Protocol >- // >- DriverBinding->ImageHandle =3D ImageHandle; >- DriverBinding->DriverBindingHandle =3D DriverBindingHandle; >- >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- &gEfiComponentName2ProtocolGuid, ComponentName2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- &gEfiComponentNameProtocolGuid, ComponentName, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- &gEfiComponentNameProtocolGuid, ComponentName, >- &gEfiComponentName2ProtocolGuid, ComponentName2,= >- NULL >- ); >- } >- } >- >- // >- // ASSERT if the call to InstallMultipleProtocolInterfaces() failed >- // >- ASSERT_EFI_ERROR (Status); >- >- return Status; >+ return EfiLibProcessProtocol ( >+ ImageHandle, >+ DriverBinding, >+ DriverBindingHandle, >+ TRUE, >+ ComponentName, >+ ComponentName2, >+ NULL, >+ NULL, >+ NULL, >+ NULL >+ ); > } > > >@@ -449,7 +385,10 @@ EfiLibInstallDriverBindingComponentName2 ( > If DriverBinding is NULL, then ASSERT(). > If the uninstallation fails, then ASSERT(). > >+ @param ImageHandle The image handle of the driver. >+ @param SystemTable The EFI System Table that was passed to = the >driver's entry point. > @param DriverBinding A Driver Binding Protocol instance that = this driver >produced. >+ @param DriverBindingHandle The handle that DriverBinding is to be >installed onto. > @param ComponentName A Component Name Protocol instance that >this driver produced. > @param ComponentName2 A Component Name 2 Protocol instance tha= t >this driver produced. > >@@ -460,55 +399,26 @@ EfiLibInstallDriverBindingComponentName2 ( > EFI_STATUS > EFIAPI > EfiLibUninstallDriverBindingComponentName2 ( >+ IN CONST EFI_HANDLE ImageHandle, >+ IN CONST EFI_SYSTEM_TABLE *SystemTable, > IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, >+ IN EFI_HANDLE DriverBindingHandle, > IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, >OPTIONAL > IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 >OPTIONAL > ) > { >- EFI_STATUS Status; >- >- ASSERT (DriverBinding !=3D NULL); >- >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- &gEfiComponentName2ProtocolGuid, ComponentName2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- &gEfiComponentNameProtocolGuid, ComponentName, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBinding, >- &gEfiComponentNameProtocolGuid, ComponentName, >- &gEfiComponentName2ProtocolGuid, ComponentName2,= >- NULL >- ); >- } >- } >- >- // >- // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed= >- // >- ASSERT_EFI_ERROR (Status); >- >- return Status; >+ return EfiLibProcessProtocol ( >+ ImageHandle, >+ DriverBinding, >+ DriverBindingHandle, >+ FALSE, >+ ComponentName, >+ ComponentName2, >+ NULL, >+ NULL, >+ NULL, >+ NULL >+ ); > } > > >@@ -557,724 +467,18 @@ EfiLibInstallAllDriverProtocols2 ( > IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 >OPTIONAL > ) > { >- EFI_STATUS Status; >- >- ASSERT (DriverBinding !=3D NULL); >- >- // >- // Update the ImageHandle and DriverBindingHandle fields of the Drive= r >Binding Protocol >- // >- DriverBinding->ImageHandle =3D ImageHandle; >- DriverBinding->DriverBindingHandle =3D DriverBindingHandle; >- >- if (DriverConfiguration2 =3D=3D NULL) { >- if (DriverConfiguration =3D=3D NULL) { >- if (DriverDiagnostics =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnosticsDisable)) { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } else { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } >- } else { >- if (DriverDiagnostics =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnosticsDisable)) { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } else { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } >- } >- } else { >- if (DriverConfiguration =3D=3D NULL) { >- if (DriverDiagnostics =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnosticsDisable)) { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } else { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } >- } else { >- if (DriverDiagnostics =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnosticsDisable)) { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } else { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->InstallMultipleProtocolInterfaces ( >- &DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } >- } >- } >- >- // >- // ASSERT if the call to InstallMultipleProtocolInterfaces() failed >- // >- ASSERT_EFI_ERROR (Status); >- >- return Status; >+ return EfiLibProcessProtocol ( >+ ImageHandle, >+ DriverBinding, >+ DriverBindingHandle, >+ TRUE, >+ ComponentName, >+ ComponentName2, >+ DriverConfiguration, >+ DriverConfiguration2, >+ DriverDiagnostics, >+ DriverDiagnostics2 >+ ); > } > > >@@ -1287,7 +491,10 @@ EfiLibInstallAllDriverProtocols2 ( > If the installation fails, then ASSERT(). > > >+ @param ImageHandle The image handle of the driver. >+ @param SystemTable The EFI System Table that was passed to= =20the >driver's entry point. > @param DriverBinding A Driver Binding Protocol instance that= =20this driver >produced. >+ @param DriverBindingHandle The handle that DriverBinding is to be >installed onto. > @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 instanc= e that >this driver produced. >@@ -1302,7 +509,10 @@ EfiLibInstallAllDriverProtocols2 ( > EFI_STATUS > EFIAPI > EfiLibUninstallAllDriverProtocols2 ( >+ IN CONST EFI_HANDLE ImageHandle, >+ IN CONST EFI_SYSTEM_TABLE *SystemTable, > IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, >+ IN EFI_HANDLE DriverBindingHandle, > IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName, >OPTIONAL > IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2, >OPTIONAL > IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration, >OPTIONAL >@@ -1311,716 +521,16 @@ EfiLibUninstallAllDriverProtocols2 ( > IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 >OPTIONAL > ) > { >- EFI_STATUS Status; >- >- ASSERT (DriverBinding !=3D NULL); >- >- if (DriverConfiguration2 =3D=3D NULL) { >- if (DriverConfiguration =3D=3D NULL) { >- if (DriverDiagnostics =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnosticsDisable)) { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } else { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } >- } else { >- if (DriverDiagnostics =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnosticsDisable)) { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } else { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } >- } >- } else { >- if (DriverConfiguration =3D=3D NULL) { >- if (DriverDiagnostics =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnosticsDisable)) { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } else { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } >- } else { >- if (DriverDiagnostics =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnosticsDisable)) { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } else { >- if (DriverDiagnostics2 =3D=3D NULL || >FeaturePcdGet(PcdDriverDiagnostics2Disable)) { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- NULL >- ); >- } >- } >- } else { >- if (ComponentName =3D=3D NULL || >FeaturePcdGet(PcdComponentNameDisable)) { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } else { >- if (ComponentName2 =3D=3D NULL || >FeaturePcdGet(PcdComponentName2Disable)) { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } else { >- Status =3D gBS->UninstallMultipleProtocolInterfaces ( >- DriverBinding->DriverBindingHandle, >- &gEfiDriverBindingProtocolGuid, DriverBin= ding, >- &gEfiComponentNameProtocolGuid, Component= Name, >- &gEfiComponentName2ProtocolGuid, Componen= tName2, >- &gEfiDriverConfigurationProtocolGuid, Dri= verConfiguration, >- &gEfiDriverConfiguration2ProtocolGuid, Dr= iverConfiguration2, >- &gEfiDriverDiagnosticsProtocolGuid, Drive= rDiagnostics, >- &gEfiDriverDiagnostics2ProtocolGuid, Driv= erDiagnostics2, >- NULL >- ); >- } >- } >- } >- } >- } >- } >- >- // >- // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed= >- // >- ASSERT_EFI_ERROR (Status); >- >- return Status; >+ return EfiLibProcessProtocol ( >+ ImageHandle, >+ DriverBinding, >+ DriverBindingHandle, >+ FALSE, >+ ComponentName, >+ ComponentName2, >+ DriverConfiguration, >+ DriverConfiguration2, >+ DriverDiagnostics, >+ DriverDiagnostics2 >+ ); > } >-- >2.7.4 > >_______________________________________________ >edk2-devel mailing list >edk2-devel@lists.01.org >https://lists.01.org/mailman/listinfo/edk2-devel -------------------------------------------------------------------------= ---------- This email message is for the sole use of the intended recipient(s) and m= ay contain confidential information. Any unauthorized review, use, disclosure or di= stribution is prohibited. If you are not the intended recipient, please contact the= =20sender by reply email and destroy all copies of the original message. -------------------------------------------------------------------------= ----------