2 Library functions that abstract driver model protocols
3 installation and uninstallation.
5 Copyright (c) 2019, NVIDIA Corporation. All rights reserved.
6 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
12 #include "UefiLibInternal.h"
15 Installs and completes the initialization of a Driver Binding Protocol instance.
17 Installs the Driver Binding Protocol specified by DriverBinding onto the handle
18 specified by DriverBindingHandle. If DriverBindingHandle is NULL, then DriverBinding
19 is installed onto a newly created handle. DriverBindingHandle is typically the same
20 as the driver's ImageHandle, but it can be different if the driver produces multiple
21 Driver Binding Protocols.
22 If DriverBinding is NULL, then ASSERT().
23 If DriverBinding can not be installed onto a handle, then ASSERT().
25 @param ImageHandle The image handle of the driver.
26 @param SystemTable The EFI System Table that was passed to the driver's entry point.
27 @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
28 @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
29 parameter is NULL, then a new handle is created.
31 @retval EFI_SUCCESS The protocol installation successfully completed.
32 @retval EFI_OUT_OF_RESOURCES There was not enough system resources to install the protocol.
33 @retval Others Status from gBS->InstallMultipleProtocolInterfaces().
38 EfiLibInstallDriverBinding (
39 IN CONST EFI_HANDLE ImageHandle
,
40 IN CONST EFI_SYSTEM_TABLE
*SystemTable
,
41 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
42 IN EFI_HANDLE DriverBindingHandle
47 ASSERT (DriverBinding
!= NULL
);
50 // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
52 DriverBinding
->ImageHandle
= ImageHandle
;
53 DriverBinding
->DriverBindingHandle
= DriverBindingHandle
;
55 Status
= gBS
->InstallMultipleProtocolInterfaces (
56 &DriverBinding
->DriverBindingHandle
,
57 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
61 // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
63 ASSERT_EFI_ERROR (Status
);
71 Uninstalls a Driver Binding Protocol instance.
73 If DriverBinding is NULL, then ASSERT().
74 If DriverBinding can not be uninstalled, then ASSERT().
76 @param DriverBinding A Driver Binding Protocol instance that this driver produced.
78 @retval EFI_SUCCESS The protocol uninstallation successfully completed.
79 @retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
84 EfiLibUninstallDriverBinding (
85 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
90 ASSERT (DriverBinding
!= NULL
);
92 Status
= gBS
->UninstallMultipleProtocolInterfaces (
93 DriverBinding
->DriverBindingHandle
,
94 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
98 // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
100 ASSERT_EFI_ERROR (Status
);
108 Installs and completes the initialization of a Driver Binding Protocol instance and
109 optionally installs the Component Name, Driver Configuration and Driver Diagnostics Protocols.
111 Initializes a driver by installing the Driver Binding Protocol together with the
112 optional Component Name, optional Driver Configure and optional Driver Diagnostic
113 Protocols onto the driver's DriverBindingHandle. If DriverBindingHandle is NULL,
114 then the protocols are installed onto a newly created handle. DriverBindingHandle
115 is typically the same as the driver's ImageHandle, but it can be different if the
116 driver produces multiple Driver Binding Protocols.
117 If DriverBinding is NULL, then ASSERT().
118 If the installation fails, then ASSERT().
120 @param ImageHandle The image handle of the driver.
121 @param SystemTable The EFI System Table that was passed to the driver's entry point.
122 @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
123 @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
124 parameter is NULL, then a new handle is created.
125 @param ComponentName A Component Name Protocol instance that this driver is producing.
126 @param DriverConfiguration A Driver Configuration Protocol instance that this driver is producing.
127 @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing.
129 @retval EFI_SUCCESS The protocol installation successfully completed.
130 @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
135 EfiLibInstallAllDriverProtocols (
136 IN CONST EFI_HANDLE ImageHandle
,
137 IN CONST EFI_SYSTEM_TABLE
*SystemTable
,
138 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
139 IN EFI_HANDLE DriverBindingHandle
,
140 IN CONST EFI_COMPONENT_NAME_PROTOCOL
*ComponentName OPTIONAL
,
141 IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL
*DriverConfiguration OPTIONAL
,
142 IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
*DriverDiagnostics OPTIONAL
147 ASSERT (DriverBinding
!= NULL
);
150 // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
152 DriverBinding
->ImageHandle
= ImageHandle
;
153 DriverBinding
->DriverBindingHandle
= DriverBindingHandle
;
155 if (DriverDiagnostics
== NULL
|| FeaturePcdGet(PcdDriverDiagnosticsDisable
)) {
156 if (DriverConfiguration
== NULL
) {
157 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
158 Status
= gBS
->InstallMultipleProtocolInterfaces (
159 &DriverBinding
->DriverBindingHandle
,
160 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
164 Status
= gBS
->InstallMultipleProtocolInterfaces (
165 &DriverBinding
->DriverBindingHandle
,
166 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
167 &gEfiComponentNameProtocolGuid
, ComponentName
,
172 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
173 Status
= gBS
->InstallMultipleProtocolInterfaces (
174 &DriverBinding
->DriverBindingHandle
,
175 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
176 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
180 Status
= gBS
->InstallMultipleProtocolInterfaces (
181 &DriverBinding
->DriverBindingHandle
,
182 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
183 &gEfiComponentNameProtocolGuid
, ComponentName
,
184 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
190 if (DriverConfiguration
== NULL
) {
191 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
192 Status
= gBS
->InstallMultipleProtocolInterfaces (
193 &DriverBinding
->DriverBindingHandle
,
194 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
195 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
199 Status
= gBS
->InstallMultipleProtocolInterfaces (
200 &DriverBinding
->DriverBindingHandle
,
201 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
202 &gEfiComponentNameProtocolGuid
, ComponentName
,
203 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
208 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
209 Status
= gBS
->InstallMultipleProtocolInterfaces (
210 &DriverBinding
->DriverBindingHandle
,
211 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
212 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
213 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
217 Status
= gBS
->InstallMultipleProtocolInterfaces (
218 &DriverBinding
->DriverBindingHandle
,
219 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
220 &gEfiComponentNameProtocolGuid
, ComponentName
,
221 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
222 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
230 // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
232 ASSERT_EFI_ERROR (Status
);
240 Uninstalls a Driver Binding Protocol instance and optionally uninstalls the
241 Component Name, Driver Configuration and Driver Diagnostics Protocols.
243 If DriverBinding is NULL, then ASSERT().
244 If the uninstallation fails, then ASSERT().
246 @param DriverBinding A Driver Binding Protocol instance that this driver produced.
247 @param ComponentName A Component Name Protocol instance that this driver produced.
248 @param DriverConfiguration A Driver Configuration Protocol instance that this driver produced.
249 @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver produced.
251 @retval EFI_SUCCESS The protocol uninstallation successfully completed.
252 @retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
257 EfiLibUninstallAllDriverProtocols (
258 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
259 IN CONST EFI_COMPONENT_NAME_PROTOCOL
*ComponentName OPTIONAL
,
260 IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL
*DriverConfiguration OPTIONAL
,
261 IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
*DriverDiagnostics OPTIONAL
266 ASSERT (DriverBinding
!= NULL
);
268 if (DriverDiagnostics
== NULL
|| FeaturePcdGet(PcdDriverDiagnosticsDisable
)) {
269 if (DriverConfiguration
== NULL
) {
270 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
271 Status
= gBS
->UninstallMultipleProtocolInterfaces (
272 DriverBinding
->DriverBindingHandle
,
273 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
277 Status
= gBS
->UninstallMultipleProtocolInterfaces (
278 DriverBinding
->DriverBindingHandle
,
279 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
280 &gEfiComponentNameProtocolGuid
, ComponentName
,
285 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
286 Status
= gBS
->UninstallMultipleProtocolInterfaces (
287 DriverBinding
->DriverBindingHandle
,
288 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
289 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
293 Status
= gBS
->UninstallMultipleProtocolInterfaces (
294 DriverBinding
->DriverBindingHandle
,
295 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
296 &gEfiComponentNameProtocolGuid
, ComponentName
,
297 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
303 if (DriverConfiguration
== NULL
) {
304 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
305 Status
= gBS
->UninstallMultipleProtocolInterfaces (
306 DriverBinding
->DriverBindingHandle
,
307 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
308 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
312 Status
= gBS
->UninstallMultipleProtocolInterfaces (
313 DriverBinding
->DriverBindingHandle
,
314 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
315 &gEfiComponentNameProtocolGuid
, ComponentName
,
316 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
321 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
322 Status
= gBS
->UninstallMultipleProtocolInterfaces (
323 DriverBinding
->DriverBindingHandle
,
324 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
325 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
326 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
330 Status
= gBS
->UninstallMultipleProtocolInterfaces (
331 DriverBinding
->DriverBindingHandle
,
332 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
333 &gEfiComponentNameProtocolGuid
, ComponentName
,
334 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
335 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
343 // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
345 ASSERT_EFI_ERROR (Status
);
353 Installs Driver Binding Protocol with optional Component Name and Component Name 2 Protocols.
355 Initializes a driver by installing the Driver Binding Protocol together with the
356 optional Component Name and optional Component Name 2 protocols onto the driver's
357 DriverBindingHandle. If DriverBindingHandle is NULL, then the protocols are installed
358 onto a newly created handle. DriverBindingHandle is typically the same as the driver's
359 ImageHandle, but it can be different if the driver produces multiple Driver Binding Protocols.
360 If DriverBinding is NULL, then ASSERT().
361 If the installation fails, then ASSERT().
363 @param ImageHandle The image handle of the driver.
364 @param SystemTable The EFI System Table that was passed to the driver's entry point.
365 @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
366 @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
367 parameter is NULL, then a new handle is created.
368 @param ComponentName A Component Name Protocol instance that this driver is producing.
369 @param ComponentName2 A Component Name 2 Protocol instance that this driver is producing.
371 @retval EFI_SUCCESS The protocol installation successfully completed.
372 @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
377 EfiLibInstallDriverBindingComponentName2 (
378 IN CONST EFI_HANDLE ImageHandle
,
379 IN CONST EFI_SYSTEM_TABLE
*SystemTable
,
380 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
381 IN EFI_HANDLE DriverBindingHandle
,
382 IN CONST EFI_COMPONENT_NAME_PROTOCOL
*ComponentName OPTIONAL
,
383 IN CONST EFI_COMPONENT_NAME2_PROTOCOL
*ComponentName2 OPTIONAL
388 ASSERT (DriverBinding
!= NULL
);
391 // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
393 DriverBinding
->ImageHandle
= ImageHandle
;
394 DriverBinding
->DriverBindingHandle
= DriverBindingHandle
;
396 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
397 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
398 Status
= gBS
->InstallMultipleProtocolInterfaces (
399 &DriverBinding
->DriverBindingHandle
,
400 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
404 Status
= gBS
->InstallMultipleProtocolInterfaces (
405 &DriverBinding
->DriverBindingHandle
,
406 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
407 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
412 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
413 Status
= gBS
->InstallMultipleProtocolInterfaces (
414 &DriverBinding
->DriverBindingHandle
,
415 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
416 &gEfiComponentNameProtocolGuid
, ComponentName
,
420 Status
= gBS
->InstallMultipleProtocolInterfaces (
421 &DriverBinding
->DriverBindingHandle
,
422 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
423 &gEfiComponentNameProtocolGuid
, ComponentName
,
424 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
431 // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
433 ASSERT_EFI_ERROR (Status
);
441 Uninstalls Driver Binding Protocol with optional Component Name and Component Name 2 Protocols.
443 If DriverBinding is NULL, then ASSERT().
444 If the uninstallation fails, then ASSERT().
446 @param DriverBinding A Driver Binding Protocol instance that this driver produced.
447 @param ComponentName A Component Name Protocol instance that this driver produced.
448 @param ComponentName2 A Component Name 2 Protocol instance that this driver produced.
450 @retval EFI_SUCCESS The protocol installation successfully completed.
451 @retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
456 EfiLibUninstallDriverBindingComponentName2 (
457 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
458 IN CONST EFI_COMPONENT_NAME_PROTOCOL
*ComponentName OPTIONAL
,
459 IN CONST EFI_COMPONENT_NAME2_PROTOCOL
*ComponentName2 OPTIONAL
464 ASSERT (DriverBinding
!= NULL
);
466 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
467 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
468 Status
= gBS
->UninstallMultipleProtocolInterfaces (
469 DriverBinding
->DriverBindingHandle
,
470 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
474 Status
= gBS
->UninstallMultipleProtocolInterfaces (
475 DriverBinding
->DriverBindingHandle
,
476 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
477 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
482 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
483 Status
= gBS
->UninstallMultipleProtocolInterfaces (
484 DriverBinding
->DriverBindingHandle
,
485 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
486 &gEfiComponentNameProtocolGuid
, ComponentName
,
490 Status
= gBS
->UninstallMultipleProtocolInterfaces (
491 DriverBinding
->DriverBindingHandle
,
492 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
493 &gEfiComponentNameProtocolGuid
, ComponentName
,
494 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
501 // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
503 ASSERT_EFI_ERROR (Status
);
511 Installs Driver Binding Protocol with optional Component Name, Component Name 2, Driver
512 Configuration, Driver Configuration 2, Driver Diagnostics, and Driver Diagnostics 2 Protocols.
514 Initializes a driver by installing the Driver Binding Protocol together with the optional
515 Component Name, optional Component Name 2, optional Driver Configuration, optional Driver Configuration 2,
516 optional Driver Diagnostic, and optional Driver Diagnostic 2 Protocols onto the driver's DriverBindingHandle.
517 DriverBindingHandle is typically the same as the driver's ImageHandle, but it can be different if the driver
518 produces multiple Driver Binding Protocols.
519 If DriverBinding is NULL, then ASSERT().
520 If the installation fails, then ASSERT().
523 @param ImageHandle The image handle of the driver.
524 @param SystemTable The EFI System Table that was passed to the driver's entry point.
525 @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
526 @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
527 parameter is NULL, then a new handle is created.
528 @param ComponentName A Component Name Protocol instance that this driver is producing.
529 @param ComponentName2 A Component Name 2 Protocol instance that this driver is producing.
530 @param DriverConfiguration A Driver Configuration Protocol instance that this driver is producing.
531 @param DriverConfiguration2 A Driver Configuration Protocol 2 instance that this driver is producing.
532 @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing.
533 @param DriverDiagnostics2 A Driver Diagnostics Protocol 2 instance that this driver is producing.
535 @retval EFI_SUCCESS The protocol installation successfully completed.
536 @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
541 EfiLibInstallAllDriverProtocols2 (
542 IN CONST EFI_HANDLE ImageHandle
,
543 IN CONST EFI_SYSTEM_TABLE
*SystemTable
,
544 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
545 IN EFI_HANDLE DriverBindingHandle
,
546 IN CONST EFI_COMPONENT_NAME_PROTOCOL
*ComponentName OPTIONAL
,
547 IN CONST EFI_COMPONENT_NAME2_PROTOCOL
*ComponentName2 OPTIONAL
,
548 IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL
*DriverConfiguration OPTIONAL
,
549 IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL
*DriverConfiguration2 OPTIONAL
,
550 IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
*DriverDiagnostics OPTIONAL
,
551 IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL
*DriverDiagnostics2 OPTIONAL
556 ASSERT (DriverBinding
!= NULL
);
559 // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
561 DriverBinding
->ImageHandle
= ImageHandle
;
562 DriverBinding
->DriverBindingHandle
= DriverBindingHandle
;
564 if (DriverConfiguration2
== NULL
) {
565 if (DriverConfiguration
== NULL
) {
566 if (DriverDiagnostics
== NULL
|| FeaturePcdGet(PcdDriverDiagnosticsDisable
)) {
567 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
568 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
569 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
570 Status
= gBS
->InstallMultipleProtocolInterfaces (
571 &DriverBinding
->DriverBindingHandle
,
572 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
576 Status
= gBS
->InstallMultipleProtocolInterfaces (
577 &DriverBinding
->DriverBindingHandle
,
578 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
579 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
584 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
585 Status
= gBS
->InstallMultipleProtocolInterfaces (
586 &DriverBinding
->DriverBindingHandle
,
587 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
588 &gEfiComponentNameProtocolGuid
, ComponentName
,
592 Status
= gBS
->InstallMultipleProtocolInterfaces (
593 &DriverBinding
->DriverBindingHandle
,
594 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
595 &gEfiComponentNameProtocolGuid
, ComponentName
,
596 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
602 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
603 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
604 Status
= gBS
->InstallMultipleProtocolInterfaces (
605 &DriverBinding
->DriverBindingHandle
,
606 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
607 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
611 Status
= gBS
->InstallMultipleProtocolInterfaces (
612 &DriverBinding
->DriverBindingHandle
,
613 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
614 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
615 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
620 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
621 Status
= gBS
->InstallMultipleProtocolInterfaces (
622 &DriverBinding
->DriverBindingHandle
,
623 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
624 &gEfiComponentNameProtocolGuid
, ComponentName
,
625 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
629 Status
= gBS
->InstallMultipleProtocolInterfaces (
630 &DriverBinding
->DriverBindingHandle
,
631 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
632 &gEfiComponentNameProtocolGuid
, ComponentName
,
633 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
634 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
641 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
642 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
643 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
644 Status
= gBS
->InstallMultipleProtocolInterfaces (
645 &DriverBinding
->DriverBindingHandle
,
646 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
647 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
651 Status
= gBS
->InstallMultipleProtocolInterfaces (
652 &DriverBinding
->DriverBindingHandle
,
653 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
654 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
655 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
660 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
661 Status
= gBS
->InstallMultipleProtocolInterfaces (
662 &DriverBinding
->DriverBindingHandle
,
663 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
664 &gEfiComponentNameProtocolGuid
, ComponentName
,
665 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
669 Status
= gBS
->InstallMultipleProtocolInterfaces (
670 &DriverBinding
->DriverBindingHandle
,
671 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
672 &gEfiComponentNameProtocolGuid
, ComponentName
,
673 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
674 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
680 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
681 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
682 Status
= gBS
->InstallMultipleProtocolInterfaces (
683 &DriverBinding
->DriverBindingHandle
,
684 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
685 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
686 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
690 Status
= gBS
->InstallMultipleProtocolInterfaces (
691 &DriverBinding
->DriverBindingHandle
,
692 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
693 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
694 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
695 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
700 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
701 Status
= gBS
->InstallMultipleProtocolInterfaces (
702 &DriverBinding
->DriverBindingHandle
,
703 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
704 &gEfiComponentNameProtocolGuid
, ComponentName
,
705 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
706 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
710 Status
= gBS
->InstallMultipleProtocolInterfaces (
711 &DriverBinding
->DriverBindingHandle
,
712 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
713 &gEfiComponentNameProtocolGuid
, ComponentName
,
714 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
715 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
716 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
724 if (DriverDiagnostics
== NULL
|| FeaturePcdGet(PcdDriverDiagnosticsDisable
)) {
725 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
726 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
727 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
728 Status
= gBS
->InstallMultipleProtocolInterfaces (
729 &DriverBinding
->DriverBindingHandle
,
730 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
731 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
735 Status
= gBS
->InstallMultipleProtocolInterfaces (
736 &DriverBinding
->DriverBindingHandle
,
737 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
738 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
739 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
744 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
745 Status
= gBS
->InstallMultipleProtocolInterfaces (
746 &DriverBinding
->DriverBindingHandle
,
747 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
748 &gEfiComponentNameProtocolGuid
, ComponentName
,
749 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
753 Status
= gBS
->InstallMultipleProtocolInterfaces (
754 &DriverBinding
->DriverBindingHandle
,
755 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
756 &gEfiComponentNameProtocolGuid
, ComponentName
,
757 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
758 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
764 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
765 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
766 Status
= gBS
->InstallMultipleProtocolInterfaces (
767 &DriverBinding
->DriverBindingHandle
,
768 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
769 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
770 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
774 Status
= gBS
->InstallMultipleProtocolInterfaces (
775 &DriverBinding
->DriverBindingHandle
,
776 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
777 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
778 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
779 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
784 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
785 Status
= gBS
->InstallMultipleProtocolInterfaces (
786 &DriverBinding
->DriverBindingHandle
,
787 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
788 &gEfiComponentNameProtocolGuid
, ComponentName
,
789 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
790 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
794 Status
= gBS
->InstallMultipleProtocolInterfaces (
795 &DriverBinding
->DriverBindingHandle
,
796 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
797 &gEfiComponentNameProtocolGuid
, ComponentName
,
798 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
799 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
800 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
807 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
808 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
809 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
810 Status
= gBS
->InstallMultipleProtocolInterfaces (
811 &DriverBinding
->DriverBindingHandle
,
812 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
813 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
814 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
818 Status
= gBS
->InstallMultipleProtocolInterfaces (
819 &DriverBinding
->DriverBindingHandle
,
820 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
821 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
822 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
823 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
828 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
829 Status
= gBS
->InstallMultipleProtocolInterfaces (
830 &DriverBinding
->DriverBindingHandle
,
831 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
832 &gEfiComponentNameProtocolGuid
, ComponentName
,
833 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
834 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
838 Status
= gBS
->InstallMultipleProtocolInterfaces (
839 &DriverBinding
->DriverBindingHandle
,
840 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
841 &gEfiComponentNameProtocolGuid
, ComponentName
,
842 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
843 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
844 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
850 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
851 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
852 Status
= gBS
->InstallMultipleProtocolInterfaces (
853 &DriverBinding
->DriverBindingHandle
,
854 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
855 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
856 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
857 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
861 Status
= gBS
->InstallMultipleProtocolInterfaces (
862 &DriverBinding
->DriverBindingHandle
,
863 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
864 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
865 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
866 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
867 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
872 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
873 Status
= gBS
->InstallMultipleProtocolInterfaces (
874 &DriverBinding
->DriverBindingHandle
,
875 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
876 &gEfiComponentNameProtocolGuid
, ComponentName
,
877 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
878 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
879 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
883 Status
= gBS
->InstallMultipleProtocolInterfaces (
884 &DriverBinding
->DriverBindingHandle
,
885 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
886 &gEfiComponentNameProtocolGuid
, ComponentName
,
887 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
888 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
889 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
890 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
899 if (DriverConfiguration
== NULL
) {
900 if (DriverDiagnostics
== NULL
|| FeaturePcdGet(PcdDriverDiagnosticsDisable
)) {
901 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
902 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
903 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
904 Status
= gBS
->InstallMultipleProtocolInterfaces (
905 &DriverBinding
->DriverBindingHandle
,
906 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
907 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
911 Status
= gBS
->InstallMultipleProtocolInterfaces (
912 &DriverBinding
->DriverBindingHandle
,
913 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
914 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
915 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
920 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
921 Status
= gBS
->InstallMultipleProtocolInterfaces (
922 &DriverBinding
->DriverBindingHandle
,
923 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
924 &gEfiComponentNameProtocolGuid
, ComponentName
,
925 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
929 Status
= gBS
->InstallMultipleProtocolInterfaces (
930 &DriverBinding
->DriverBindingHandle
,
931 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
932 &gEfiComponentNameProtocolGuid
, ComponentName
,
933 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
934 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
940 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
941 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
942 Status
= gBS
->InstallMultipleProtocolInterfaces (
943 &DriverBinding
->DriverBindingHandle
,
944 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
945 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
946 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
950 Status
= gBS
->InstallMultipleProtocolInterfaces (
951 &DriverBinding
->DriverBindingHandle
,
952 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
953 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
954 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
955 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
960 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
961 Status
= gBS
->InstallMultipleProtocolInterfaces (
962 &DriverBinding
->DriverBindingHandle
,
963 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
964 &gEfiComponentNameProtocolGuid
, ComponentName
,
965 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
966 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
970 Status
= gBS
->InstallMultipleProtocolInterfaces (
971 &DriverBinding
->DriverBindingHandle
,
972 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
973 &gEfiComponentNameProtocolGuid
, ComponentName
,
974 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
975 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
976 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
983 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
984 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
985 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
986 Status
= gBS
->InstallMultipleProtocolInterfaces (
987 &DriverBinding
->DriverBindingHandle
,
988 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
989 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
990 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
994 Status
= gBS
->InstallMultipleProtocolInterfaces (
995 &DriverBinding
->DriverBindingHandle
,
996 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
997 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
998 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
999 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1004 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1005 Status
= gBS
->InstallMultipleProtocolInterfaces (
1006 &DriverBinding
->DriverBindingHandle
,
1007 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1008 &gEfiComponentNameProtocolGuid
, ComponentName
,
1009 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1010 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1014 Status
= gBS
->InstallMultipleProtocolInterfaces (
1015 &DriverBinding
->DriverBindingHandle
,
1016 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1017 &gEfiComponentNameProtocolGuid
, ComponentName
,
1018 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1019 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1020 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1026 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1027 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1028 Status
= gBS
->InstallMultipleProtocolInterfaces (
1029 &DriverBinding
->DriverBindingHandle
,
1030 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1031 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1032 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1033 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1037 Status
= gBS
->InstallMultipleProtocolInterfaces (
1038 &DriverBinding
->DriverBindingHandle
,
1039 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1040 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1041 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1042 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1043 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1048 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1049 Status
= gBS
->InstallMultipleProtocolInterfaces (
1050 &DriverBinding
->DriverBindingHandle
,
1051 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1052 &gEfiComponentNameProtocolGuid
, ComponentName
,
1053 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1054 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1055 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1059 Status
= gBS
->InstallMultipleProtocolInterfaces (
1060 &DriverBinding
->DriverBindingHandle
,
1061 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1062 &gEfiComponentNameProtocolGuid
, ComponentName
,
1063 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1064 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1065 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1066 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1074 if (DriverDiagnostics
== NULL
|| FeaturePcdGet(PcdDriverDiagnosticsDisable
)) {
1075 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
1076 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1077 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1078 Status
= gBS
->InstallMultipleProtocolInterfaces (
1079 &DriverBinding
->DriverBindingHandle
,
1080 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1081 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1082 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1086 Status
= gBS
->InstallMultipleProtocolInterfaces (
1087 &DriverBinding
->DriverBindingHandle
,
1088 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1089 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1090 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1091 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1096 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1097 Status
= gBS
->InstallMultipleProtocolInterfaces (
1098 &DriverBinding
->DriverBindingHandle
,
1099 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1100 &gEfiComponentNameProtocolGuid
, ComponentName
,
1101 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1102 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1106 Status
= gBS
->InstallMultipleProtocolInterfaces (
1107 &DriverBinding
->DriverBindingHandle
,
1108 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1109 &gEfiComponentNameProtocolGuid
, ComponentName
,
1110 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1111 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1112 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1118 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1119 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1120 Status
= gBS
->InstallMultipleProtocolInterfaces (
1121 &DriverBinding
->DriverBindingHandle
,
1122 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1123 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1124 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1125 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1129 Status
= gBS
->InstallMultipleProtocolInterfaces (
1130 &DriverBinding
->DriverBindingHandle
,
1131 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1132 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1133 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1134 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1135 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1140 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1141 Status
= gBS
->InstallMultipleProtocolInterfaces (
1142 &DriverBinding
->DriverBindingHandle
,
1143 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1144 &gEfiComponentNameProtocolGuid
, ComponentName
,
1145 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1146 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1147 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1151 Status
= gBS
->InstallMultipleProtocolInterfaces (
1152 &DriverBinding
->DriverBindingHandle
,
1153 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1154 &gEfiComponentNameProtocolGuid
, ComponentName
,
1155 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1156 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1157 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1158 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1165 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
1166 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1167 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1168 Status
= gBS
->InstallMultipleProtocolInterfaces (
1169 &DriverBinding
->DriverBindingHandle
,
1170 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1171 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1172 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1173 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1177 Status
= gBS
->InstallMultipleProtocolInterfaces (
1178 &DriverBinding
->DriverBindingHandle
,
1179 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1180 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1181 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1182 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1183 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1188 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1189 Status
= gBS
->InstallMultipleProtocolInterfaces (
1190 &DriverBinding
->DriverBindingHandle
,
1191 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1192 &gEfiComponentNameProtocolGuid
, ComponentName
,
1193 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1194 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1195 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1199 Status
= gBS
->InstallMultipleProtocolInterfaces (
1200 &DriverBinding
->DriverBindingHandle
,
1201 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1202 &gEfiComponentNameProtocolGuid
, ComponentName
,
1203 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1204 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1205 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1206 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1212 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1213 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1214 Status
= gBS
->InstallMultipleProtocolInterfaces (
1215 &DriverBinding
->DriverBindingHandle
,
1216 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1217 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1218 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1219 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1220 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1224 Status
= gBS
->InstallMultipleProtocolInterfaces (
1225 &DriverBinding
->DriverBindingHandle
,
1226 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1227 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1228 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1229 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1230 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1231 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1236 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1237 Status
= gBS
->InstallMultipleProtocolInterfaces (
1238 &DriverBinding
->DriverBindingHandle
,
1239 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1240 &gEfiComponentNameProtocolGuid
, ComponentName
,
1241 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1242 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1243 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1244 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1248 Status
= gBS
->InstallMultipleProtocolInterfaces (
1249 &DriverBinding
->DriverBindingHandle
,
1250 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1251 &gEfiComponentNameProtocolGuid
, ComponentName
,
1252 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1253 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1254 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1255 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1256 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1267 // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
1269 ASSERT_EFI_ERROR (Status
);
1277 Uninstalls Driver Binding Protocol with optional Component Name, Component Name 2, Driver
1278 Configuration, Driver Configuration 2, Driver Diagnostics, and Driver Diagnostics 2 Protocols.
1280 If DriverBinding is NULL, then ASSERT().
1281 If the installation fails, then ASSERT().
1284 @param DriverBinding A Driver Binding Protocol instance that this driver produced.
1285 @param ComponentName A Component Name Protocol instance that this driver produced.
1286 @param ComponentName2 A Component Name 2 Protocol instance that this driver produced.
1287 @param DriverConfiguration A Driver Configuration Protocol instance that this driver produced.
1288 @param DriverConfiguration2 A Driver Configuration Protocol 2 instance that this driver produced.
1289 @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver produced.
1290 @param DriverDiagnostics2 A Driver Diagnostics Protocol 2 instance that this driver produced.
1292 @retval EFI_SUCCESS The protocol uninstallation successfully completed.
1293 @retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
1298 EfiLibUninstallAllDriverProtocols2 (
1299 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
1300 IN CONST EFI_COMPONENT_NAME_PROTOCOL
*ComponentName OPTIONAL
,
1301 IN CONST EFI_COMPONENT_NAME2_PROTOCOL
*ComponentName2 OPTIONAL
,
1302 IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL
*DriverConfiguration OPTIONAL
,
1303 IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL
*DriverConfiguration2 OPTIONAL
,
1304 IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
*DriverDiagnostics OPTIONAL
,
1305 IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL
*DriverDiagnostics2 OPTIONAL
1310 ASSERT (DriverBinding
!= NULL
);
1312 if (DriverConfiguration2
== NULL
) {
1313 if (DriverConfiguration
== NULL
) {
1314 if (DriverDiagnostics
== NULL
|| FeaturePcdGet(PcdDriverDiagnosticsDisable
)) {
1315 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
1316 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1317 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1318 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1319 DriverBinding
->DriverBindingHandle
,
1320 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1324 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1325 DriverBinding
->DriverBindingHandle
,
1326 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1327 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1332 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1333 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1334 DriverBinding
->DriverBindingHandle
,
1335 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1336 &gEfiComponentNameProtocolGuid
, ComponentName
,
1340 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1341 DriverBinding
->DriverBindingHandle
,
1342 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1343 &gEfiComponentNameProtocolGuid
, ComponentName
,
1344 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1350 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1351 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1352 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1353 DriverBinding
->DriverBindingHandle
,
1354 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1355 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1359 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1360 DriverBinding
->DriverBindingHandle
,
1361 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1362 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1363 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1368 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1369 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1370 DriverBinding
->DriverBindingHandle
,
1371 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1372 &gEfiComponentNameProtocolGuid
, ComponentName
,
1373 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1377 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1378 DriverBinding
->DriverBindingHandle
,
1379 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1380 &gEfiComponentNameProtocolGuid
, ComponentName
,
1381 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1382 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1389 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
1390 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1391 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1392 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1393 DriverBinding
->DriverBindingHandle
,
1394 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1395 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1399 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1400 DriverBinding
->DriverBindingHandle
,
1401 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1402 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1403 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1408 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1409 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1410 DriverBinding
->DriverBindingHandle
,
1411 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1412 &gEfiComponentNameProtocolGuid
, ComponentName
,
1413 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1417 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1418 DriverBinding
->DriverBindingHandle
,
1419 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1420 &gEfiComponentNameProtocolGuid
, ComponentName
,
1421 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1422 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1428 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1429 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1430 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1431 DriverBinding
->DriverBindingHandle
,
1432 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1433 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1434 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1438 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1439 DriverBinding
->DriverBindingHandle
,
1440 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1441 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1442 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1443 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1448 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1449 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1450 DriverBinding
->DriverBindingHandle
,
1451 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1452 &gEfiComponentNameProtocolGuid
, ComponentName
,
1453 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1454 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1458 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1459 DriverBinding
->DriverBindingHandle
,
1460 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1461 &gEfiComponentNameProtocolGuid
, ComponentName
,
1462 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1463 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1464 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1472 if (DriverDiagnostics
== NULL
|| FeaturePcdGet(PcdDriverDiagnosticsDisable
)) {
1473 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
1474 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1475 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1476 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1477 DriverBinding
->DriverBindingHandle
,
1478 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1479 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1483 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1484 DriverBinding
->DriverBindingHandle
,
1485 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1486 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1487 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1492 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1493 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1494 DriverBinding
->DriverBindingHandle
,
1495 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1496 &gEfiComponentNameProtocolGuid
, ComponentName
,
1497 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1501 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1502 DriverBinding
->DriverBindingHandle
,
1503 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1504 &gEfiComponentNameProtocolGuid
, ComponentName
,
1505 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1506 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1512 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1513 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1514 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1515 DriverBinding
->DriverBindingHandle
,
1516 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1517 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1518 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1522 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1523 DriverBinding
->DriverBindingHandle
,
1524 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1525 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1526 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1527 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1532 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1533 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1534 DriverBinding
->DriverBindingHandle
,
1535 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1536 &gEfiComponentNameProtocolGuid
, ComponentName
,
1537 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1538 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1542 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1543 DriverBinding
->DriverBindingHandle
,
1544 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1545 &gEfiComponentNameProtocolGuid
, ComponentName
,
1546 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1547 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1548 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1555 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
1556 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1557 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1558 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1559 DriverBinding
->DriverBindingHandle
,
1560 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1561 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1562 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1566 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1567 DriverBinding
->DriverBindingHandle
,
1568 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1569 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1570 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1571 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1576 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1577 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1578 DriverBinding
->DriverBindingHandle
,
1579 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1580 &gEfiComponentNameProtocolGuid
, ComponentName
,
1581 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1582 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1586 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1587 DriverBinding
->DriverBindingHandle
,
1588 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1589 &gEfiComponentNameProtocolGuid
, ComponentName
,
1590 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1591 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1592 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1598 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1599 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1600 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1601 DriverBinding
->DriverBindingHandle
,
1602 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1603 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1604 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1605 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1609 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1610 DriverBinding
->DriverBindingHandle
,
1611 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1612 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1613 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1614 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1615 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1620 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1621 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1622 DriverBinding
->DriverBindingHandle
,
1623 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1624 &gEfiComponentNameProtocolGuid
, ComponentName
,
1625 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1626 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1627 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1631 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1632 DriverBinding
->DriverBindingHandle
,
1633 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1634 &gEfiComponentNameProtocolGuid
, ComponentName
,
1635 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1636 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1637 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1638 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1647 if (DriverConfiguration
== NULL
) {
1648 if (DriverDiagnostics
== NULL
|| FeaturePcdGet(PcdDriverDiagnosticsDisable
)) {
1649 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
1650 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1651 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1652 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1653 DriverBinding
->DriverBindingHandle
,
1654 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1655 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1659 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1660 DriverBinding
->DriverBindingHandle
,
1661 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1662 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1663 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1668 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1669 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1670 DriverBinding
->DriverBindingHandle
,
1671 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1672 &gEfiComponentNameProtocolGuid
, ComponentName
,
1673 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1677 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1678 DriverBinding
->DriverBindingHandle
,
1679 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1680 &gEfiComponentNameProtocolGuid
, ComponentName
,
1681 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1682 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1688 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1689 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1690 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1691 DriverBinding
->DriverBindingHandle
,
1692 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1693 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1694 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1698 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1699 DriverBinding
->DriverBindingHandle
,
1700 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1701 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1702 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1703 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1708 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1709 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1710 DriverBinding
->DriverBindingHandle
,
1711 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1712 &gEfiComponentNameProtocolGuid
, ComponentName
,
1713 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1714 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1718 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1719 DriverBinding
->DriverBindingHandle
,
1720 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1721 &gEfiComponentNameProtocolGuid
, ComponentName
,
1722 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1723 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1724 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1731 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
1732 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1733 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1734 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1735 DriverBinding
->DriverBindingHandle
,
1736 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1737 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1738 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1742 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1743 DriverBinding
->DriverBindingHandle
,
1744 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1745 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1746 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1747 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1752 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1753 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1754 DriverBinding
->DriverBindingHandle
,
1755 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1756 &gEfiComponentNameProtocolGuid
, ComponentName
,
1757 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1758 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1762 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1763 DriverBinding
->DriverBindingHandle
,
1764 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1765 &gEfiComponentNameProtocolGuid
, ComponentName
,
1766 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1767 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1768 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1774 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1775 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1776 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1777 DriverBinding
->DriverBindingHandle
,
1778 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1779 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1780 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1781 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1785 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1786 DriverBinding
->DriverBindingHandle
,
1787 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1788 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1789 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1790 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1791 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1796 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1797 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1798 DriverBinding
->DriverBindingHandle
,
1799 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1800 &gEfiComponentNameProtocolGuid
, ComponentName
,
1801 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1802 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1803 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1807 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1808 DriverBinding
->DriverBindingHandle
,
1809 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1810 &gEfiComponentNameProtocolGuid
, ComponentName
,
1811 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1812 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1813 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1814 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1822 if (DriverDiagnostics
== NULL
|| FeaturePcdGet(PcdDriverDiagnosticsDisable
)) {
1823 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
1824 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1825 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1826 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1827 DriverBinding
->DriverBindingHandle
,
1828 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1829 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1830 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1834 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1835 DriverBinding
->DriverBindingHandle
,
1836 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1837 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1838 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1839 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1844 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1845 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1846 DriverBinding
->DriverBindingHandle
,
1847 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1848 &gEfiComponentNameProtocolGuid
, ComponentName
,
1849 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1850 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1854 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1855 DriverBinding
->DriverBindingHandle
,
1856 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1857 &gEfiComponentNameProtocolGuid
, ComponentName
,
1858 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1859 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1860 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1866 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1867 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1868 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1869 DriverBinding
->DriverBindingHandle
,
1870 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1871 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1872 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1873 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1877 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1878 DriverBinding
->DriverBindingHandle
,
1879 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1880 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1881 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1882 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1883 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1888 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1889 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1890 DriverBinding
->DriverBindingHandle
,
1891 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1892 &gEfiComponentNameProtocolGuid
, ComponentName
,
1893 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1894 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1895 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1899 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1900 DriverBinding
->DriverBindingHandle
,
1901 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1902 &gEfiComponentNameProtocolGuid
, ComponentName
,
1903 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1904 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1905 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1906 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1913 if (DriverDiagnostics2
== NULL
|| FeaturePcdGet(PcdDriverDiagnostics2Disable
)) {
1914 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1915 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1916 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1917 DriverBinding
->DriverBindingHandle
,
1918 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1919 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1920 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1921 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1925 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1926 DriverBinding
->DriverBindingHandle
,
1927 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1928 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1929 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1930 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1931 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1936 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1937 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1938 DriverBinding
->DriverBindingHandle
,
1939 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1940 &gEfiComponentNameProtocolGuid
, ComponentName
,
1941 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1942 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1943 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1947 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1948 DriverBinding
->DriverBindingHandle
,
1949 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1950 &gEfiComponentNameProtocolGuid
, ComponentName
,
1951 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1952 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1953 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1954 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1960 if (ComponentName
== NULL
|| FeaturePcdGet(PcdComponentNameDisable
)) {
1961 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1962 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1963 DriverBinding
->DriverBindingHandle
,
1964 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1965 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1966 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1967 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1968 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1972 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1973 DriverBinding
->DriverBindingHandle
,
1974 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1975 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
1976 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1977 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1978 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1979 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1984 if (ComponentName2
== NULL
|| FeaturePcdGet(PcdComponentName2Disable
)) {
1985 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1986 DriverBinding
->DriverBindingHandle
,
1987 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1988 &gEfiComponentNameProtocolGuid
, ComponentName
,
1989 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
1990 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
1991 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
1992 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
1996 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1997 DriverBinding
->DriverBindingHandle
,
1998 &gEfiDriverBindingProtocolGuid
, DriverBinding
,
1999 &gEfiComponentNameProtocolGuid
, ComponentName
,
2000 &gEfiComponentName2ProtocolGuid
, ComponentName2
,
2001 &gEfiDriverConfigurationProtocolGuid
, DriverConfiguration
,
2002 &gEfiDriverConfiguration2ProtocolGuid
, DriverConfiguration2
,
2003 &gEfiDriverDiagnosticsProtocolGuid
, DriverDiagnostics
,
2004 &gEfiDriverDiagnostics2ProtocolGuid
, DriverDiagnostics2
,
2015 // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
2017 ASSERT_EFI_ERROR (Status
);