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
11 #include "UefiLibInternal.h"
14 Installs and completes the initialization of a Driver Binding Protocol instance.
16 Installs the Driver Binding Protocol specified by DriverBinding onto the handle
17 specified by DriverBindingHandle. If DriverBindingHandle is NULL, then DriverBinding
18 is installed onto a newly created handle. DriverBindingHandle is typically the same
19 as the driver's ImageHandle, but it can be different if the driver produces multiple
20 Driver Binding Protocols.
21 If DriverBinding is NULL, then ASSERT().
22 If DriverBinding can not be installed onto a handle, then ASSERT().
24 @param ImageHandle The image handle of the driver.
25 @param SystemTable The EFI System Table that was passed to the driver's entry point.
26 @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
27 @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
28 parameter is NULL, then a new handle is created.
30 @retval EFI_SUCCESS The protocol installation successfully completed.
31 @retval EFI_OUT_OF_RESOURCES There was not enough system resources to install the protocol.
32 @retval Others Status from gBS->InstallMultipleProtocolInterfaces().
37 EfiLibInstallDriverBinding (
38 IN CONST EFI_HANDLE ImageHandle
,
39 IN CONST EFI_SYSTEM_TABLE
*SystemTable
,
40 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
41 IN EFI_HANDLE DriverBindingHandle
46 ASSERT (DriverBinding
!= NULL
);
49 // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
51 DriverBinding
->ImageHandle
= ImageHandle
;
52 DriverBinding
->DriverBindingHandle
= DriverBindingHandle
;
54 Status
= gBS
->InstallMultipleProtocolInterfaces (
55 &DriverBinding
->DriverBindingHandle
,
56 &gEfiDriverBindingProtocolGuid
,
61 // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
63 ASSERT_EFI_ERROR (Status
);
69 Uninstalls a Driver Binding Protocol instance.
71 If DriverBinding is NULL, then ASSERT().
72 If DriverBinding can not be uninstalled, then ASSERT().
74 @param DriverBinding A Driver Binding Protocol instance that this driver produced.
76 @retval EFI_SUCCESS The protocol uninstallation successfully completed.
77 @retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
82 EfiLibUninstallDriverBinding (
83 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
88 ASSERT (DriverBinding
!= NULL
);
90 Status
= gBS
->UninstallMultipleProtocolInterfaces (
91 DriverBinding
->DriverBindingHandle
,
92 &gEfiDriverBindingProtocolGuid
,
97 // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
99 ASSERT_EFI_ERROR (Status
);
105 Installs and completes the initialization of a Driver Binding Protocol instance and
106 optionally installs the Component Name, Driver Configuration and Driver Diagnostics Protocols.
108 Initializes a driver by installing the Driver Binding Protocol together with the
109 optional Component Name, optional Driver Configure and optional Driver Diagnostic
110 Protocols onto the driver's DriverBindingHandle. If DriverBindingHandle is NULL,
111 then the protocols are installed onto a newly created handle. DriverBindingHandle
112 is typically the same as the driver's ImageHandle, but it can be different if the
113 driver produces multiple Driver Binding Protocols.
114 If DriverBinding is NULL, then ASSERT().
115 If the installation fails, then ASSERT().
117 @param ImageHandle The image handle of the driver.
118 @param SystemTable The EFI System Table that was passed to the driver's entry point.
119 @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
120 @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
121 parameter is NULL, then a new handle is created.
122 @param ComponentName A Component Name Protocol instance that this driver is producing.
123 @param DriverConfiguration A Driver Configuration Protocol instance that this driver is producing.
124 @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing.
126 @retval EFI_SUCCESS The protocol installation successfully completed.
127 @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
132 EfiLibInstallAllDriverProtocols (
133 IN CONST EFI_HANDLE ImageHandle
,
134 IN CONST EFI_SYSTEM_TABLE
*SystemTable
,
135 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
136 IN EFI_HANDLE DriverBindingHandle
,
137 IN CONST EFI_COMPONENT_NAME_PROTOCOL
*ComponentName OPTIONAL
,
138 IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL
*DriverConfiguration OPTIONAL
,
139 IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
*DriverDiagnostics OPTIONAL
144 ASSERT (DriverBinding
!= NULL
);
147 // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
149 DriverBinding
->ImageHandle
= ImageHandle
;
150 DriverBinding
->DriverBindingHandle
= DriverBindingHandle
;
152 if ((DriverDiagnostics
== NULL
) || FeaturePcdGet (PcdDriverDiagnosticsDisable
)) {
153 if (DriverConfiguration
== NULL
) {
154 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
155 Status
= gBS
->InstallMultipleProtocolInterfaces (
156 &DriverBinding
->DriverBindingHandle
,
157 &gEfiDriverBindingProtocolGuid
,
162 Status
= gBS
->InstallMultipleProtocolInterfaces (
163 &DriverBinding
->DriverBindingHandle
,
164 &gEfiDriverBindingProtocolGuid
,
166 &gEfiComponentNameProtocolGuid
,
172 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
173 Status
= gBS
->InstallMultipleProtocolInterfaces (
174 &DriverBinding
->DriverBindingHandle
,
175 &gEfiDriverBindingProtocolGuid
,
177 &gEfiDriverConfigurationProtocolGuid
,
182 Status
= gBS
->InstallMultipleProtocolInterfaces (
183 &DriverBinding
->DriverBindingHandle
,
184 &gEfiDriverBindingProtocolGuid
,
186 &gEfiComponentNameProtocolGuid
,
188 &gEfiDriverConfigurationProtocolGuid
,
195 if (DriverConfiguration
== NULL
) {
196 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
197 Status
= gBS
->InstallMultipleProtocolInterfaces (
198 &DriverBinding
->DriverBindingHandle
,
199 &gEfiDriverBindingProtocolGuid
,
201 &gEfiDriverDiagnosticsProtocolGuid
,
206 Status
= gBS
->InstallMultipleProtocolInterfaces (
207 &DriverBinding
->DriverBindingHandle
,
208 &gEfiDriverBindingProtocolGuid
,
210 &gEfiComponentNameProtocolGuid
,
212 &gEfiDriverDiagnosticsProtocolGuid
,
218 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
219 Status
= gBS
->InstallMultipleProtocolInterfaces (
220 &DriverBinding
->DriverBindingHandle
,
221 &gEfiDriverBindingProtocolGuid
,
223 &gEfiDriverConfigurationProtocolGuid
,
225 &gEfiDriverDiagnosticsProtocolGuid
,
230 Status
= gBS
->InstallMultipleProtocolInterfaces (
231 &DriverBinding
->DriverBindingHandle
,
232 &gEfiDriverBindingProtocolGuid
,
234 &gEfiComponentNameProtocolGuid
,
236 &gEfiDriverConfigurationProtocolGuid
,
238 &gEfiDriverDiagnosticsProtocolGuid
,
247 // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
249 ASSERT_EFI_ERROR (Status
);
255 Uninstalls a Driver Binding Protocol instance and optionally uninstalls the
256 Component Name, Driver Configuration and Driver Diagnostics Protocols.
258 If DriverBinding is NULL, then ASSERT().
259 If the uninstallation fails, then ASSERT().
261 @param DriverBinding A Driver Binding Protocol instance that this driver produced.
262 @param ComponentName A Component Name Protocol instance that this driver produced.
263 @param DriverConfiguration A Driver Configuration Protocol instance that this driver produced.
264 @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver produced.
266 @retval EFI_SUCCESS The protocol uninstallation successfully completed.
267 @retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
272 EfiLibUninstallAllDriverProtocols (
273 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
274 IN CONST EFI_COMPONENT_NAME_PROTOCOL
*ComponentName OPTIONAL
,
275 IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL
*DriverConfiguration OPTIONAL
,
276 IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
*DriverDiagnostics OPTIONAL
281 ASSERT (DriverBinding
!= NULL
);
283 if ((DriverDiagnostics
== NULL
) || FeaturePcdGet (PcdDriverDiagnosticsDisable
)) {
284 if (DriverConfiguration
== NULL
) {
285 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
286 Status
= gBS
->UninstallMultipleProtocolInterfaces (
287 DriverBinding
->DriverBindingHandle
,
288 &gEfiDriverBindingProtocolGuid
,
293 Status
= gBS
->UninstallMultipleProtocolInterfaces (
294 DriverBinding
->DriverBindingHandle
,
295 &gEfiDriverBindingProtocolGuid
,
297 &gEfiComponentNameProtocolGuid
,
303 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
304 Status
= gBS
->UninstallMultipleProtocolInterfaces (
305 DriverBinding
->DriverBindingHandle
,
306 &gEfiDriverBindingProtocolGuid
,
308 &gEfiDriverConfigurationProtocolGuid
,
313 Status
= gBS
->UninstallMultipleProtocolInterfaces (
314 DriverBinding
->DriverBindingHandle
,
315 &gEfiDriverBindingProtocolGuid
,
317 &gEfiComponentNameProtocolGuid
,
319 &gEfiDriverConfigurationProtocolGuid
,
326 if (DriverConfiguration
== NULL
) {
327 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
328 Status
= gBS
->UninstallMultipleProtocolInterfaces (
329 DriverBinding
->DriverBindingHandle
,
330 &gEfiDriverBindingProtocolGuid
,
332 &gEfiDriverDiagnosticsProtocolGuid
,
337 Status
= gBS
->UninstallMultipleProtocolInterfaces (
338 DriverBinding
->DriverBindingHandle
,
339 &gEfiDriverBindingProtocolGuid
,
341 &gEfiComponentNameProtocolGuid
,
343 &gEfiDriverDiagnosticsProtocolGuid
,
349 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
350 Status
= gBS
->UninstallMultipleProtocolInterfaces (
351 DriverBinding
->DriverBindingHandle
,
352 &gEfiDriverBindingProtocolGuid
,
354 &gEfiDriverConfigurationProtocolGuid
,
356 &gEfiDriverDiagnosticsProtocolGuid
,
361 Status
= gBS
->UninstallMultipleProtocolInterfaces (
362 DriverBinding
->DriverBindingHandle
,
363 &gEfiDriverBindingProtocolGuid
,
365 &gEfiComponentNameProtocolGuid
,
367 &gEfiDriverConfigurationProtocolGuid
,
369 &gEfiDriverDiagnosticsProtocolGuid
,
378 // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
380 ASSERT_EFI_ERROR (Status
);
386 Installs Driver Binding Protocol with optional Component Name and Component Name 2 Protocols.
388 Initializes a driver by installing the Driver Binding Protocol together with the
389 optional Component Name and optional Component Name 2 protocols onto the driver's
390 DriverBindingHandle. If DriverBindingHandle is NULL, then the protocols are installed
391 onto a newly created handle. DriverBindingHandle is typically the same as the driver's
392 ImageHandle, but it can be different if the driver produces multiple Driver Binding Protocols.
393 If DriverBinding is NULL, then ASSERT().
394 If the installation fails, then ASSERT().
396 @param ImageHandle The image handle of the driver.
397 @param SystemTable The EFI System Table that was passed to the driver's entry point.
398 @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
399 @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
400 parameter is NULL, then a new handle is created.
401 @param ComponentName A Component Name Protocol instance that this driver is producing.
402 @param ComponentName2 A Component Name 2 Protocol instance that this driver is producing.
404 @retval EFI_SUCCESS The protocol installation successfully completed.
405 @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
410 EfiLibInstallDriverBindingComponentName2 (
411 IN CONST EFI_HANDLE ImageHandle
,
412 IN CONST EFI_SYSTEM_TABLE
*SystemTable
,
413 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
414 IN EFI_HANDLE DriverBindingHandle
,
415 IN CONST EFI_COMPONENT_NAME_PROTOCOL
*ComponentName OPTIONAL
,
416 IN CONST EFI_COMPONENT_NAME2_PROTOCOL
*ComponentName2 OPTIONAL
421 ASSERT (DriverBinding
!= NULL
);
424 // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
426 DriverBinding
->ImageHandle
= ImageHandle
;
427 DriverBinding
->DriverBindingHandle
= DriverBindingHandle
;
429 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
430 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
431 Status
= gBS
->InstallMultipleProtocolInterfaces (
432 &DriverBinding
->DriverBindingHandle
,
433 &gEfiDriverBindingProtocolGuid
,
438 Status
= gBS
->InstallMultipleProtocolInterfaces (
439 &DriverBinding
->DriverBindingHandle
,
440 &gEfiDriverBindingProtocolGuid
,
442 &gEfiComponentName2ProtocolGuid
,
448 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
449 Status
= gBS
->InstallMultipleProtocolInterfaces (
450 &DriverBinding
->DriverBindingHandle
,
451 &gEfiDriverBindingProtocolGuid
,
453 &gEfiComponentNameProtocolGuid
,
458 Status
= gBS
->InstallMultipleProtocolInterfaces (
459 &DriverBinding
->DriverBindingHandle
,
460 &gEfiDriverBindingProtocolGuid
,
462 &gEfiComponentNameProtocolGuid
,
464 &gEfiComponentName2ProtocolGuid
,
472 // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
474 ASSERT_EFI_ERROR (Status
);
480 Uninstalls Driver Binding Protocol with optional Component Name and Component Name 2 Protocols.
482 If DriverBinding is NULL, then ASSERT().
483 If the uninstallation fails, then ASSERT().
485 @param DriverBinding A Driver Binding Protocol instance that this driver produced.
486 @param ComponentName A Component Name Protocol instance that this driver produced.
487 @param ComponentName2 A Component Name 2 Protocol instance that this driver produced.
489 @retval EFI_SUCCESS The protocol installation successfully completed.
490 @retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
495 EfiLibUninstallDriverBindingComponentName2 (
496 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
497 IN CONST EFI_COMPONENT_NAME_PROTOCOL
*ComponentName OPTIONAL
,
498 IN CONST EFI_COMPONENT_NAME2_PROTOCOL
*ComponentName2 OPTIONAL
503 ASSERT (DriverBinding
!= NULL
);
505 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
506 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
507 Status
= gBS
->UninstallMultipleProtocolInterfaces (
508 DriverBinding
->DriverBindingHandle
,
509 &gEfiDriverBindingProtocolGuid
,
514 Status
= gBS
->UninstallMultipleProtocolInterfaces (
515 DriverBinding
->DriverBindingHandle
,
516 &gEfiDriverBindingProtocolGuid
,
518 &gEfiComponentName2ProtocolGuid
,
524 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
525 Status
= gBS
->UninstallMultipleProtocolInterfaces (
526 DriverBinding
->DriverBindingHandle
,
527 &gEfiDriverBindingProtocolGuid
,
529 &gEfiComponentNameProtocolGuid
,
534 Status
= gBS
->UninstallMultipleProtocolInterfaces (
535 DriverBinding
->DriverBindingHandle
,
536 &gEfiDriverBindingProtocolGuid
,
538 &gEfiComponentNameProtocolGuid
,
540 &gEfiComponentName2ProtocolGuid
,
548 // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
550 ASSERT_EFI_ERROR (Status
);
556 Installs Driver Binding Protocol with optional Component Name, Component Name 2, Driver
557 Configuration, Driver Configuration 2, Driver Diagnostics, and Driver Diagnostics 2 Protocols.
559 Initializes a driver by installing the Driver Binding Protocol together with the optional
560 Component Name, optional Component Name 2, optional Driver Configuration, optional Driver Configuration 2,
561 optional Driver Diagnostic, and optional Driver Diagnostic 2 Protocols onto the driver's DriverBindingHandle.
562 DriverBindingHandle is typically the same as the driver's ImageHandle, but it can be different if the driver
563 produces multiple Driver Binding Protocols.
564 If DriverBinding is NULL, then ASSERT().
565 If the installation fails, then ASSERT().
568 @param ImageHandle The image handle of the driver.
569 @param SystemTable The EFI System Table that was passed to the driver's entry point.
570 @param DriverBinding A Driver Binding Protocol instance that this driver is producing.
571 @param DriverBindingHandle The handle that DriverBinding is to be installed onto. If this
572 parameter is NULL, then a new handle is created.
573 @param ComponentName A Component Name Protocol instance that this driver is producing.
574 @param ComponentName2 A Component Name 2 Protocol instance that this driver is producing.
575 @param DriverConfiguration A Driver Configuration Protocol instance that this driver is producing.
576 @param DriverConfiguration2 A Driver Configuration Protocol 2 instance that this driver is producing.
577 @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver is producing.
578 @param DriverDiagnostics2 A Driver Diagnostics Protocol 2 instance that this driver is producing.
580 @retval EFI_SUCCESS The protocol installation successfully completed.
581 @retval EFI_OUT_OF_RESOURCES There was not enough memory in pool to install all the protocols.
586 EfiLibInstallAllDriverProtocols2 (
587 IN CONST EFI_HANDLE ImageHandle
,
588 IN CONST EFI_SYSTEM_TABLE
*SystemTable
,
589 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
590 IN EFI_HANDLE DriverBindingHandle
,
591 IN CONST EFI_COMPONENT_NAME_PROTOCOL
*ComponentName OPTIONAL
,
592 IN CONST EFI_COMPONENT_NAME2_PROTOCOL
*ComponentName2 OPTIONAL
,
593 IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL
*DriverConfiguration OPTIONAL
,
594 IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL
*DriverConfiguration2 OPTIONAL
,
595 IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
*DriverDiagnostics OPTIONAL
,
596 IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL
*DriverDiagnostics2 OPTIONAL
601 ASSERT (DriverBinding
!= NULL
);
604 // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
606 DriverBinding
->ImageHandle
= ImageHandle
;
607 DriverBinding
->DriverBindingHandle
= DriverBindingHandle
;
609 if (DriverConfiguration2
== NULL
) {
610 if (DriverConfiguration
== NULL
) {
611 if ((DriverDiagnostics
== NULL
) || FeaturePcdGet (PcdDriverDiagnosticsDisable
)) {
612 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
613 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
614 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
615 Status
= gBS
->InstallMultipleProtocolInterfaces (
616 &DriverBinding
->DriverBindingHandle
,
617 &gEfiDriverBindingProtocolGuid
,
622 Status
= gBS
->InstallMultipleProtocolInterfaces (
623 &DriverBinding
->DriverBindingHandle
,
624 &gEfiDriverBindingProtocolGuid
,
626 &gEfiComponentName2ProtocolGuid
,
632 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
633 Status
= gBS
->InstallMultipleProtocolInterfaces (
634 &DriverBinding
->DriverBindingHandle
,
635 &gEfiDriverBindingProtocolGuid
,
637 &gEfiComponentNameProtocolGuid
,
642 Status
= gBS
->InstallMultipleProtocolInterfaces (
643 &DriverBinding
->DriverBindingHandle
,
644 &gEfiDriverBindingProtocolGuid
,
646 &gEfiComponentNameProtocolGuid
,
648 &gEfiComponentName2ProtocolGuid
,
655 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
656 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
657 Status
= gBS
->InstallMultipleProtocolInterfaces (
658 &DriverBinding
->DriverBindingHandle
,
659 &gEfiDriverBindingProtocolGuid
,
661 &gEfiDriverDiagnostics2ProtocolGuid
,
666 Status
= gBS
->InstallMultipleProtocolInterfaces (
667 &DriverBinding
->DriverBindingHandle
,
668 &gEfiDriverBindingProtocolGuid
,
670 &gEfiComponentName2ProtocolGuid
,
672 &gEfiDriverDiagnostics2ProtocolGuid
,
678 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
679 Status
= gBS
->InstallMultipleProtocolInterfaces (
680 &DriverBinding
->DriverBindingHandle
,
681 &gEfiDriverBindingProtocolGuid
,
683 &gEfiComponentNameProtocolGuid
,
685 &gEfiDriverDiagnostics2ProtocolGuid
,
690 Status
= gBS
->InstallMultipleProtocolInterfaces (
691 &DriverBinding
->DriverBindingHandle
,
692 &gEfiDriverBindingProtocolGuid
,
694 &gEfiComponentNameProtocolGuid
,
696 &gEfiComponentName2ProtocolGuid
,
698 &gEfiDriverDiagnostics2ProtocolGuid
,
706 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
707 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
708 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
709 Status
= gBS
->InstallMultipleProtocolInterfaces (
710 &DriverBinding
->DriverBindingHandle
,
711 &gEfiDriverBindingProtocolGuid
,
713 &gEfiDriverDiagnosticsProtocolGuid
,
718 Status
= gBS
->InstallMultipleProtocolInterfaces (
719 &DriverBinding
->DriverBindingHandle
,
720 &gEfiDriverBindingProtocolGuid
,
722 &gEfiComponentName2ProtocolGuid
,
724 &gEfiDriverDiagnosticsProtocolGuid
,
730 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
731 Status
= gBS
->InstallMultipleProtocolInterfaces (
732 &DriverBinding
->DriverBindingHandle
,
733 &gEfiDriverBindingProtocolGuid
,
735 &gEfiComponentNameProtocolGuid
,
737 &gEfiDriverDiagnosticsProtocolGuid
,
742 Status
= gBS
->InstallMultipleProtocolInterfaces (
743 &DriverBinding
->DriverBindingHandle
,
744 &gEfiDriverBindingProtocolGuid
,
746 &gEfiComponentNameProtocolGuid
,
748 &gEfiComponentName2ProtocolGuid
,
750 &gEfiDriverDiagnosticsProtocolGuid
,
757 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
758 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
759 Status
= gBS
->InstallMultipleProtocolInterfaces (
760 &DriverBinding
->DriverBindingHandle
,
761 &gEfiDriverBindingProtocolGuid
,
763 &gEfiDriverDiagnosticsProtocolGuid
,
765 &gEfiDriverDiagnostics2ProtocolGuid
,
770 Status
= gBS
->InstallMultipleProtocolInterfaces (
771 &DriverBinding
->DriverBindingHandle
,
772 &gEfiDriverBindingProtocolGuid
,
774 &gEfiComponentName2ProtocolGuid
,
776 &gEfiDriverDiagnosticsProtocolGuid
,
778 &gEfiDriverDiagnostics2ProtocolGuid
,
784 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
785 Status
= gBS
->InstallMultipleProtocolInterfaces (
786 &DriverBinding
->DriverBindingHandle
,
787 &gEfiDriverBindingProtocolGuid
,
789 &gEfiComponentNameProtocolGuid
,
791 &gEfiDriverDiagnosticsProtocolGuid
,
793 &gEfiDriverDiagnostics2ProtocolGuid
,
798 Status
= gBS
->InstallMultipleProtocolInterfaces (
799 &DriverBinding
->DriverBindingHandle
,
800 &gEfiDriverBindingProtocolGuid
,
802 &gEfiComponentNameProtocolGuid
,
804 &gEfiComponentName2ProtocolGuid
,
806 &gEfiDriverDiagnosticsProtocolGuid
,
808 &gEfiDriverDiagnostics2ProtocolGuid
,
817 if ((DriverDiagnostics
== NULL
) || FeaturePcdGet (PcdDriverDiagnosticsDisable
)) {
818 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
819 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
820 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
821 Status
= gBS
->InstallMultipleProtocolInterfaces (
822 &DriverBinding
->DriverBindingHandle
,
823 &gEfiDriverBindingProtocolGuid
,
825 &gEfiDriverConfigurationProtocolGuid
,
830 Status
= gBS
->InstallMultipleProtocolInterfaces (
831 &DriverBinding
->DriverBindingHandle
,
832 &gEfiDriverBindingProtocolGuid
,
834 &gEfiComponentName2ProtocolGuid
,
836 &gEfiDriverConfigurationProtocolGuid
,
842 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
843 Status
= gBS
->InstallMultipleProtocolInterfaces (
844 &DriverBinding
->DriverBindingHandle
,
845 &gEfiDriverBindingProtocolGuid
,
847 &gEfiComponentNameProtocolGuid
,
849 &gEfiDriverConfigurationProtocolGuid
,
854 Status
= gBS
->InstallMultipleProtocolInterfaces (
855 &DriverBinding
->DriverBindingHandle
,
856 &gEfiDriverBindingProtocolGuid
,
858 &gEfiComponentNameProtocolGuid
,
860 &gEfiComponentName2ProtocolGuid
,
862 &gEfiDriverConfigurationProtocolGuid
,
869 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
870 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
871 Status
= gBS
->InstallMultipleProtocolInterfaces (
872 &DriverBinding
->DriverBindingHandle
,
873 &gEfiDriverBindingProtocolGuid
,
875 &gEfiDriverConfigurationProtocolGuid
,
877 &gEfiDriverDiagnostics2ProtocolGuid
,
882 Status
= gBS
->InstallMultipleProtocolInterfaces (
883 &DriverBinding
->DriverBindingHandle
,
884 &gEfiDriverBindingProtocolGuid
,
886 &gEfiComponentName2ProtocolGuid
,
888 &gEfiDriverConfigurationProtocolGuid
,
890 &gEfiDriverDiagnostics2ProtocolGuid
,
896 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
897 Status
= gBS
->InstallMultipleProtocolInterfaces (
898 &DriverBinding
->DriverBindingHandle
,
899 &gEfiDriverBindingProtocolGuid
,
901 &gEfiComponentNameProtocolGuid
,
903 &gEfiDriverConfigurationProtocolGuid
,
905 &gEfiDriverDiagnostics2ProtocolGuid
,
910 Status
= gBS
->InstallMultipleProtocolInterfaces (
911 &DriverBinding
->DriverBindingHandle
,
912 &gEfiDriverBindingProtocolGuid
,
914 &gEfiComponentNameProtocolGuid
,
916 &gEfiComponentName2ProtocolGuid
,
918 &gEfiDriverConfigurationProtocolGuid
,
920 &gEfiDriverDiagnostics2ProtocolGuid
,
928 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
929 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
930 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
931 Status
= gBS
->InstallMultipleProtocolInterfaces (
932 &DriverBinding
->DriverBindingHandle
,
933 &gEfiDriverBindingProtocolGuid
,
935 &gEfiDriverConfigurationProtocolGuid
,
937 &gEfiDriverDiagnosticsProtocolGuid
,
942 Status
= gBS
->InstallMultipleProtocolInterfaces (
943 &DriverBinding
->DriverBindingHandle
,
944 &gEfiDriverBindingProtocolGuid
,
946 &gEfiComponentName2ProtocolGuid
,
948 &gEfiDriverConfigurationProtocolGuid
,
950 &gEfiDriverDiagnosticsProtocolGuid
,
956 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
957 Status
= gBS
->InstallMultipleProtocolInterfaces (
958 &DriverBinding
->DriverBindingHandle
,
959 &gEfiDriverBindingProtocolGuid
,
961 &gEfiComponentNameProtocolGuid
,
963 &gEfiDriverConfigurationProtocolGuid
,
965 &gEfiDriverDiagnosticsProtocolGuid
,
970 Status
= gBS
->InstallMultipleProtocolInterfaces (
971 &DriverBinding
->DriverBindingHandle
,
972 &gEfiDriverBindingProtocolGuid
,
974 &gEfiComponentNameProtocolGuid
,
976 &gEfiComponentName2ProtocolGuid
,
978 &gEfiDriverConfigurationProtocolGuid
,
980 &gEfiDriverDiagnosticsProtocolGuid
,
987 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
988 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
989 Status
= gBS
->InstallMultipleProtocolInterfaces (
990 &DriverBinding
->DriverBindingHandle
,
991 &gEfiDriverBindingProtocolGuid
,
993 &gEfiDriverConfigurationProtocolGuid
,
995 &gEfiDriverDiagnosticsProtocolGuid
,
997 &gEfiDriverDiagnostics2ProtocolGuid
,
1002 Status
= gBS
->InstallMultipleProtocolInterfaces (
1003 &DriverBinding
->DriverBindingHandle
,
1004 &gEfiDriverBindingProtocolGuid
,
1006 &gEfiComponentName2ProtocolGuid
,
1008 &gEfiDriverConfigurationProtocolGuid
,
1009 DriverConfiguration
,
1010 &gEfiDriverDiagnosticsProtocolGuid
,
1012 &gEfiDriverDiagnostics2ProtocolGuid
,
1018 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1019 Status
= gBS
->InstallMultipleProtocolInterfaces (
1020 &DriverBinding
->DriverBindingHandle
,
1021 &gEfiDriverBindingProtocolGuid
,
1023 &gEfiComponentNameProtocolGuid
,
1025 &gEfiDriverConfigurationProtocolGuid
,
1026 DriverConfiguration
,
1027 &gEfiDriverDiagnosticsProtocolGuid
,
1029 &gEfiDriverDiagnostics2ProtocolGuid
,
1034 Status
= gBS
->InstallMultipleProtocolInterfaces (
1035 &DriverBinding
->DriverBindingHandle
,
1036 &gEfiDriverBindingProtocolGuid
,
1038 &gEfiComponentNameProtocolGuid
,
1040 &gEfiComponentName2ProtocolGuid
,
1042 &gEfiDriverConfigurationProtocolGuid
,
1043 DriverConfiguration
,
1044 &gEfiDriverDiagnosticsProtocolGuid
,
1046 &gEfiDriverDiagnostics2ProtocolGuid
,
1056 if (DriverConfiguration
== NULL
) {
1057 if ((DriverDiagnostics
== NULL
) || FeaturePcdGet (PcdDriverDiagnosticsDisable
)) {
1058 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
1059 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1060 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1061 Status
= gBS
->InstallMultipleProtocolInterfaces (
1062 &DriverBinding
->DriverBindingHandle
,
1063 &gEfiDriverBindingProtocolGuid
,
1065 &gEfiDriverConfiguration2ProtocolGuid
,
1066 DriverConfiguration2
,
1070 Status
= gBS
->InstallMultipleProtocolInterfaces (
1071 &DriverBinding
->DriverBindingHandle
,
1072 &gEfiDriverBindingProtocolGuid
,
1074 &gEfiComponentName2ProtocolGuid
,
1076 &gEfiDriverConfiguration2ProtocolGuid
,
1077 DriverConfiguration2
,
1082 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1083 Status
= gBS
->InstallMultipleProtocolInterfaces (
1084 &DriverBinding
->DriverBindingHandle
,
1085 &gEfiDriverBindingProtocolGuid
,
1087 &gEfiComponentNameProtocolGuid
,
1089 &gEfiDriverConfiguration2ProtocolGuid
,
1090 DriverConfiguration2
,
1094 Status
= gBS
->InstallMultipleProtocolInterfaces (
1095 &DriverBinding
->DriverBindingHandle
,
1096 &gEfiDriverBindingProtocolGuid
,
1098 &gEfiComponentNameProtocolGuid
,
1100 &gEfiComponentName2ProtocolGuid
,
1102 &gEfiDriverConfiguration2ProtocolGuid
,
1103 DriverConfiguration2
,
1109 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1110 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1111 Status
= gBS
->InstallMultipleProtocolInterfaces (
1112 &DriverBinding
->DriverBindingHandle
,
1113 &gEfiDriverBindingProtocolGuid
,
1115 &gEfiDriverDiagnostics2ProtocolGuid
,
1117 &gEfiDriverConfiguration2ProtocolGuid
,
1118 DriverConfiguration2
,
1122 Status
= gBS
->InstallMultipleProtocolInterfaces (
1123 &DriverBinding
->DriverBindingHandle
,
1124 &gEfiDriverBindingProtocolGuid
,
1126 &gEfiComponentName2ProtocolGuid
,
1128 &gEfiDriverConfiguration2ProtocolGuid
,
1129 DriverConfiguration2
,
1130 &gEfiDriverDiagnostics2ProtocolGuid
,
1136 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1137 Status
= gBS
->InstallMultipleProtocolInterfaces (
1138 &DriverBinding
->DriverBindingHandle
,
1139 &gEfiDriverBindingProtocolGuid
,
1141 &gEfiComponentNameProtocolGuid
,
1143 &gEfiDriverConfiguration2ProtocolGuid
,
1144 DriverConfiguration2
,
1145 &gEfiDriverDiagnostics2ProtocolGuid
,
1150 Status
= gBS
->InstallMultipleProtocolInterfaces (
1151 &DriverBinding
->DriverBindingHandle
,
1152 &gEfiDriverBindingProtocolGuid
,
1154 &gEfiComponentNameProtocolGuid
,
1156 &gEfiComponentName2ProtocolGuid
,
1158 &gEfiDriverConfiguration2ProtocolGuid
,
1159 DriverConfiguration2
,
1160 &gEfiDriverDiagnostics2ProtocolGuid
,
1168 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
1169 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1170 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1171 Status
= gBS
->InstallMultipleProtocolInterfaces (
1172 &DriverBinding
->DriverBindingHandle
,
1173 &gEfiDriverBindingProtocolGuid
,
1175 &gEfiDriverDiagnosticsProtocolGuid
,
1177 &gEfiDriverConfiguration2ProtocolGuid
,
1178 DriverConfiguration2
,
1182 Status
= gBS
->InstallMultipleProtocolInterfaces (
1183 &DriverBinding
->DriverBindingHandle
,
1184 &gEfiDriverBindingProtocolGuid
,
1186 &gEfiComponentName2ProtocolGuid
,
1188 &gEfiDriverConfiguration2ProtocolGuid
,
1189 DriverConfiguration2
,
1190 &gEfiDriverDiagnosticsProtocolGuid
,
1196 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1197 Status
= gBS
->InstallMultipleProtocolInterfaces (
1198 &DriverBinding
->DriverBindingHandle
,
1199 &gEfiDriverBindingProtocolGuid
,
1201 &gEfiComponentNameProtocolGuid
,
1203 &gEfiDriverDiagnosticsProtocolGuid
,
1205 &gEfiDriverConfiguration2ProtocolGuid
,
1206 DriverConfiguration2
,
1210 Status
= gBS
->InstallMultipleProtocolInterfaces (
1211 &DriverBinding
->DriverBindingHandle
,
1212 &gEfiDriverBindingProtocolGuid
,
1214 &gEfiComponentNameProtocolGuid
,
1216 &gEfiComponentName2ProtocolGuid
,
1218 &gEfiDriverConfiguration2ProtocolGuid
,
1219 DriverConfiguration2
,
1220 &gEfiDriverDiagnosticsProtocolGuid
,
1227 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1228 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1229 Status
= gBS
->InstallMultipleProtocolInterfaces (
1230 &DriverBinding
->DriverBindingHandle
,
1231 &gEfiDriverBindingProtocolGuid
,
1233 &gEfiDriverConfiguration2ProtocolGuid
,
1234 DriverConfiguration2
,
1235 &gEfiDriverDiagnosticsProtocolGuid
,
1237 &gEfiDriverDiagnostics2ProtocolGuid
,
1242 Status
= gBS
->InstallMultipleProtocolInterfaces (
1243 &DriverBinding
->DriverBindingHandle
,
1244 &gEfiDriverBindingProtocolGuid
,
1246 &gEfiComponentName2ProtocolGuid
,
1248 &gEfiDriverConfiguration2ProtocolGuid
,
1249 DriverConfiguration2
,
1250 &gEfiDriverDiagnosticsProtocolGuid
,
1252 &gEfiDriverDiagnostics2ProtocolGuid
,
1258 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1259 Status
= gBS
->InstallMultipleProtocolInterfaces (
1260 &DriverBinding
->DriverBindingHandle
,
1261 &gEfiDriverBindingProtocolGuid
,
1263 &gEfiComponentNameProtocolGuid
,
1265 &gEfiDriverConfiguration2ProtocolGuid
,
1266 DriverConfiguration2
,
1267 &gEfiDriverDiagnosticsProtocolGuid
,
1269 &gEfiDriverDiagnostics2ProtocolGuid
,
1274 Status
= gBS
->InstallMultipleProtocolInterfaces (
1275 &DriverBinding
->DriverBindingHandle
,
1276 &gEfiDriverBindingProtocolGuid
,
1278 &gEfiComponentNameProtocolGuid
,
1280 &gEfiComponentName2ProtocolGuid
,
1282 &gEfiDriverConfiguration2ProtocolGuid
,
1283 DriverConfiguration2
,
1284 &gEfiDriverDiagnosticsProtocolGuid
,
1286 &gEfiDriverDiagnostics2ProtocolGuid
,
1295 if ((DriverDiagnostics
== NULL
) || FeaturePcdGet (PcdDriverDiagnosticsDisable
)) {
1296 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
1297 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1298 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1299 Status
= gBS
->InstallMultipleProtocolInterfaces (
1300 &DriverBinding
->DriverBindingHandle
,
1301 &gEfiDriverBindingProtocolGuid
,
1303 &gEfiDriverConfigurationProtocolGuid
,
1304 DriverConfiguration
,
1305 &gEfiDriverConfiguration2ProtocolGuid
,
1306 DriverConfiguration2
,
1310 Status
= gBS
->InstallMultipleProtocolInterfaces (
1311 &DriverBinding
->DriverBindingHandle
,
1312 &gEfiDriverBindingProtocolGuid
,
1314 &gEfiComponentName2ProtocolGuid
,
1316 &gEfiDriverConfigurationProtocolGuid
,
1317 DriverConfiguration
,
1318 &gEfiDriverConfiguration2ProtocolGuid
,
1319 DriverConfiguration2
,
1324 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1325 Status
= gBS
->InstallMultipleProtocolInterfaces (
1326 &DriverBinding
->DriverBindingHandle
,
1327 &gEfiDriverBindingProtocolGuid
,
1329 &gEfiComponentNameProtocolGuid
,
1331 &gEfiDriverConfigurationProtocolGuid
,
1332 DriverConfiguration
,
1333 &gEfiDriverConfiguration2ProtocolGuid
,
1334 DriverConfiguration2
,
1338 Status
= gBS
->InstallMultipleProtocolInterfaces (
1339 &DriverBinding
->DriverBindingHandle
,
1340 &gEfiDriverBindingProtocolGuid
,
1342 &gEfiComponentNameProtocolGuid
,
1344 &gEfiComponentName2ProtocolGuid
,
1346 &gEfiDriverConfigurationProtocolGuid
,
1347 DriverConfiguration
,
1348 &gEfiDriverConfiguration2ProtocolGuid
,
1349 DriverConfiguration2
,
1355 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1356 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1357 Status
= gBS
->InstallMultipleProtocolInterfaces (
1358 &DriverBinding
->DriverBindingHandle
,
1359 &gEfiDriverBindingProtocolGuid
,
1361 &gEfiDriverConfigurationProtocolGuid
,
1362 DriverConfiguration
,
1363 &gEfiDriverConfiguration2ProtocolGuid
,
1364 DriverConfiguration2
,
1365 &gEfiDriverDiagnostics2ProtocolGuid
,
1370 Status
= gBS
->InstallMultipleProtocolInterfaces (
1371 &DriverBinding
->DriverBindingHandle
,
1372 &gEfiDriverBindingProtocolGuid
,
1374 &gEfiComponentName2ProtocolGuid
,
1376 &gEfiDriverConfigurationProtocolGuid
,
1377 DriverConfiguration
,
1378 &gEfiDriverConfiguration2ProtocolGuid
,
1379 DriverConfiguration2
,
1380 &gEfiDriverDiagnostics2ProtocolGuid
,
1386 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1387 Status
= gBS
->InstallMultipleProtocolInterfaces (
1388 &DriverBinding
->DriverBindingHandle
,
1389 &gEfiDriverBindingProtocolGuid
,
1391 &gEfiComponentNameProtocolGuid
,
1393 &gEfiDriverConfigurationProtocolGuid
,
1394 DriverConfiguration
,
1395 &gEfiDriverConfiguration2ProtocolGuid
,
1396 DriverConfiguration2
,
1397 &gEfiDriverDiagnostics2ProtocolGuid
,
1402 Status
= gBS
->InstallMultipleProtocolInterfaces (
1403 &DriverBinding
->DriverBindingHandle
,
1404 &gEfiDriverBindingProtocolGuid
,
1406 &gEfiComponentNameProtocolGuid
,
1408 &gEfiComponentName2ProtocolGuid
,
1410 &gEfiDriverConfigurationProtocolGuid
,
1411 DriverConfiguration
,
1412 &gEfiDriverConfiguration2ProtocolGuid
,
1413 DriverConfiguration2
,
1414 &gEfiDriverDiagnostics2ProtocolGuid
,
1422 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
1423 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1424 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1425 Status
= gBS
->InstallMultipleProtocolInterfaces (
1426 &DriverBinding
->DriverBindingHandle
,
1427 &gEfiDriverBindingProtocolGuid
,
1429 &gEfiDriverConfigurationProtocolGuid
,
1430 DriverConfiguration
,
1431 &gEfiDriverConfiguration2ProtocolGuid
,
1432 DriverConfiguration2
,
1433 &gEfiDriverDiagnosticsProtocolGuid
,
1438 Status
= gBS
->InstallMultipleProtocolInterfaces (
1439 &DriverBinding
->DriverBindingHandle
,
1440 &gEfiDriverBindingProtocolGuid
,
1442 &gEfiComponentName2ProtocolGuid
,
1444 &gEfiDriverConfigurationProtocolGuid
,
1445 DriverConfiguration
,
1446 &gEfiDriverConfiguration2ProtocolGuid
,
1447 DriverConfiguration2
,
1448 &gEfiDriverDiagnosticsProtocolGuid
,
1454 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1455 Status
= gBS
->InstallMultipleProtocolInterfaces (
1456 &DriverBinding
->DriverBindingHandle
,
1457 &gEfiDriverBindingProtocolGuid
,
1459 &gEfiComponentNameProtocolGuid
,
1461 &gEfiDriverConfigurationProtocolGuid
,
1462 DriverConfiguration
,
1463 &gEfiDriverConfiguration2ProtocolGuid
,
1464 DriverConfiguration2
,
1465 &gEfiDriverDiagnosticsProtocolGuid
,
1470 Status
= gBS
->InstallMultipleProtocolInterfaces (
1471 &DriverBinding
->DriverBindingHandle
,
1472 &gEfiDriverBindingProtocolGuid
,
1474 &gEfiComponentNameProtocolGuid
,
1476 &gEfiComponentName2ProtocolGuid
,
1478 &gEfiDriverConfigurationProtocolGuid
,
1479 DriverConfiguration
,
1480 &gEfiDriverConfiguration2ProtocolGuid
,
1481 DriverConfiguration2
,
1482 &gEfiDriverDiagnosticsProtocolGuid
,
1489 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1490 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1491 Status
= gBS
->InstallMultipleProtocolInterfaces (
1492 &DriverBinding
->DriverBindingHandle
,
1493 &gEfiDriverBindingProtocolGuid
,
1495 &gEfiDriverConfigurationProtocolGuid
,
1496 DriverConfiguration
,
1497 &gEfiDriverConfiguration2ProtocolGuid
,
1498 DriverConfiguration2
,
1499 &gEfiDriverDiagnosticsProtocolGuid
,
1501 &gEfiDriverDiagnostics2ProtocolGuid
,
1506 Status
= gBS
->InstallMultipleProtocolInterfaces (
1507 &DriverBinding
->DriverBindingHandle
,
1508 &gEfiDriverBindingProtocolGuid
,
1510 &gEfiComponentName2ProtocolGuid
,
1512 &gEfiDriverConfigurationProtocolGuid
,
1513 DriverConfiguration
,
1514 &gEfiDriverConfiguration2ProtocolGuid
,
1515 DriverConfiguration2
,
1516 &gEfiDriverDiagnosticsProtocolGuid
,
1518 &gEfiDriverDiagnostics2ProtocolGuid
,
1524 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1525 Status
= gBS
->InstallMultipleProtocolInterfaces (
1526 &DriverBinding
->DriverBindingHandle
,
1527 &gEfiDriverBindingProtocolGuid
,
1529 &gEfiComponentNameProtocolGuid
,
1531 &gEfiDriverConfigurationProtocolGuid
,
1532 DriverConfiguration
,
1533 &gEfiDriverConfiguration2ProtocolGuid
,
1534 DriverConfiguration2
,
1535 &gEfiDriverDiagnosticsProtocolGuid
,
1537 &gEfiDriverDiagnostics2ProtocolGuid
,
1542 Status
= gBS
->InstallMultipleProtocolInterfaces (
1543 &DriverBinding
->DriverBindingHandle
,
1544 &gEfiDriverBindingProtocolGuid
,
1546 &gEfiComponentNameProtocolGuid
,
1548 &gEfiComponentName2ProtocolGuid
,
1550 &gEfiDriverConfigurationProtocolGuid
,
1551 DriverConfiguration
,
1552 &gEfiDriverConfiguration2ProtocolGuid
,
1553 DriverConfiguration2
,
1554 &gEfiDriverDiagnosticsProtocolGuid
,
1556 &gEfiDriverDiagnostics2ProtocolGuid
,
1568 // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
1570 ASSERT_EFI_ERROR (Status
);
1576 Uninstalls Driver Binding Protocol with optional Component Name, Component Name 2, Driver
1577 Configuration, Driver Configuration 2, Driver Diagnostics, and Driver Diagnostics 2 Protocols.
1579 If DriverBinding is NULL, then ASSERT().
1580 If the installation fails, then ASSERT().
1583 @param DriverBinding A Driver Binding Protocol instance that this driver produced.
1584 @param ComponentName A Component Name Protocol instance that this driver produced.
1585 @param ComponentName2 A Component Name 2 Protocol instance that this driver produced.
1586 @param DriverConfiguration A Driver Configuration Protocol instance that this driver produced.
1587 @param DriverConfiguration2 A Driver Configuration Protocol 2 instance that this driver produced.
1588 @param DriverDiagnostics A Driver Diagnostics Protocol instance that this driver produced.
1589 @param DriverDiagnostics2 A Driver Diagnostics Protocol 2 instance that this driver produced.
1591 @retval EFI_SUCCESS The protocol uninstallation successfully completed.
1592 @retval Others Status from gBS->UninstallMultipleProtocolInterfaces().
1597 EfiLibUninstallAllDriverProtocols2 (
1598 IN EFI_DRIVER_BINDING_PROTOCOL
*DriverBinding
,
1599 IN CONST EFI_COMPONENT_NAME_PROTOCOL
*ComponentName OPTIONAL
,
1600 IN CONST EFI_COMPONENT_NAME2_PROTOCOL
*ComponentName2 OPTIONAL
,
1601 IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL
*DriverConfiguration OPTIONAL
,
1602 IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL
*DriverConfiguration2 OPTIONAL
,
1603 IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
*DriverDiagnostics OPTIONAL
,
1604 IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL
*DriverDiagnostics2 OPTIONAL
1609 ASSERT (DriverBinding
!= NULL
);
1611 if (DriverConfiguration2
== NULL
) {
1612 if (DriverConfiguration
== NULL
) {
1613 if ((DriverDiagnostics
== NULL
) || FeaturePcdGet (PcdDriverDiagnosticsDisable
)) {
1614 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
1615 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1616 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1617 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1618 DriverBinding
->DriverBindingHandle
,
1619 &gEfiDriverBindingProtocolGuid
,
1624 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1625 DriverBinding
->DriverBindingHandle
,
1626 &gEfiDriverBindingProtocolGuid
,
1628 &gEfiComponentName2ProtocolGuid
,
1634 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1635 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1636 DriverBinding
->DriverBindingHandle
,
1637 &gEfiDriverBindingProtocolGuid
,
1639 &gEfiComponentNameProtocolGuid
,
1644 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1645 DriverBinding
->DriverBindingHandle
,
1646 &gEfiDriverBindingProtocolGuid
,
1648 &gEfiComponentNameProtocolGuid
,
1650 &gEfiComponentName2ProtocolGuid
,
1657 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1658 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1659 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1660 DriverBinding
->DriverBindingHandle
,
1661 &gEfiDriverBindingProtocolGuid
,
1663 &gEfiDriverDiagnostics2ProtocolGuid
,
1668 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1669 DriverBinding
->DriverBindingHandle
,
1670 &gEfiDriverBindingProtocolGuid
,
1672 &gEfiComponentName2ProtocolGuid
,
1674 &gEfiDriverDiagnostics2ProtocolGuid
,
1680 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1681 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1682 DriverBinding
->DriverBindingHandle
,
1683 &gEfiDriverBindingProtocolGuid
,
1685 &gEfiComponentNameProtocolGuid
,
1687 &gEfiDriverDiagnostics2ProtocolGuid
,
1692 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1693 DriverBinding
->DriverBindingHandle
,
1694 &gEfiDriverBindingProtocolGuid
,
1696 &gEfiComponentNameProtocolGuid
,
1698 &gEfiComponentName2ProtocolGuid
,
1700 &gEfiDriverDiagnostics2ProtocolGuid
,
1708 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
1709 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1710 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1711 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1712 DriverBinding
->DriverBindingHandle
,
1713 &gEfiDriverBindingProtocolGuid
,
1715 &gEfiDriverDiagnosticsProtocolGuid
,
1720 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1721 DriverBinding
->DriverBindingHandle
,
1722 &gEfiDriverBindingProtocolGuid
,
1724 &gEfiComponentName2ProtocolGuid
,
1726 &gEfiDriverDiagnosticsProtocolGuid
,
1732 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1733 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1734 DriverBinding
->DriverBindingHandle
,
1735 &gEfiDriverBindingProtocolGuid
,
1737 &gEfiComponentNameProtocolGuid
,
1739 &gEfiDriverDiagnosticsProtocolGuid
,
1744 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1745 DriverBinding
->DriverBindingHandle
,
1746 &gEfiDriverBindingProtocolGuid
,
1748 &gEfiComponentNameProtocolGuid
,
1750 &gEfiComponentName2ProtocolGuid
,
1752 &gEfiDriverDiagnosticsProtocolGuid
,
1759 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1760 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1761 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1762 DriverBinding
->DriverBindingHandle
,
1763 &gEfiDriverBindingProtocolGuid
,
1765 &gEfiDriverDiagnosticsProtocolGuid
,
1767 &gEfiDriverDiagnostics2ProtocolGuid
,
1772 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1773 DriverBinding
->DriverBindingHandle
,
1774 &gEfiDriverBindingProtocolGuid
,
1776 &gEfiComponentName2ProtocolGuid
,
1778 &gEfiDriverDiagnosticsProtocolGuid
,
1780 &gEfiDriverDiagnostics2ProtocolGuid
,
1786 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1787 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1788 DriverBinding
->DriverBindingHandle
,
1789 &gEfiDriverBindingProtocolGuid
,
1791 &gEfiComponentNameProtocolGuid
,
1793 &gEfiDriverDiagnosticsProtocolGuid
,
1795 &gEfiDriverDiagnostics2ProtocolGuid
,
1800 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1801 DriverBinding
->DriverBindingHandle
,
1802 &gEfiDriverBindingProtocolGuid
,
1804 &gEfiComponentNameProtocolGuid
,
1806 &gEfiComponentName2ProtocolGuid
,
1808 &gEfiDriverDiagnosticsProtocolGuid
,
1810 &gEfiDriverDiagnostics2ProtocolGuid
,
1819 if ((DriverDiagnostics
== NULL
) || FeaturePcdGet (PcdDriverDiagnosticsDisable
)) {
1820 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
1821 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1822 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1823 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1824 DriverBinding
->DriverBindingHandle
,
1825 &gEfiDriverBindingProtocolGuid
,
1827 &gEfiDriverConfigurationProtocolGuid
,
1828 DriverConfiguration
,
1832 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1833 DriverBinding
->DriverBindingHandle
,
1834 &gEfiDriverBindingProtocolGuid
,
1836 &gEfiComponentName2ProtocolGuid
,
1838 &gEfiDriverConfigurationProtocolGuid
,
1839 DriverConfiguration
,
1844 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1845 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1846 DriverBinding
->DriverBindingHandle
,
1847 &gEfiDriverBindingProtocolGuid
,
1849 &gEfiComponentNameProtocolGuid
,
1851 &gEfiDriverConfigurationProtocolGuid
,
1852 DriverConfiguration
,
1856 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1857 DriverBinding
->DriverBindingHandle
,
1858 &gEfiDriverBindingProtocolGuid
,
1860 &gEfiComponentNameProtocolGuid
,
1862 &gEfiComponentName2ProtocolGuid
,
1864 &gEfiDriverConfigurationProtocolGuid
,
1865 DriverConfiguration
,
1871 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1872 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1873 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1874 DriverBinding
->DriverBindingHandle
,
1875 &gEfiDriverBindingProtocolGuid
,
1877 &gEfiDriverConfigurationProtocolGuid
,
1878 DriverConfiguration
,
1879 &gEfiDriverDiagnostics2ProtocolGuid
,
1884 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1885 DriverBinding
->DriverBindingHandle
,
1886 &gEfiDriverBindingProtocolGuid
,
1888 &gEfiComponentName2ProtocolGuid
,
1890 &gEfiDriverConfigurationProtocolGuid
,
1891 DriverConfiguration
,
1892 &gEfiDriverDiagnostics2ProtocolGuid
,
1898 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1899 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1900 DriverBinding
->DriverBindingHandle
,
1901 &gEfiDriverBindingProtocolGuid
,
1903 &gEfiComponentNameProtocolGuid
,
1905 &gEfiDriverConfigurationProtocolGuid
,
1906 DriverConfiguration
,
1907 &gEfiDriverDiagnostics2ProtocolGuid
,
1912 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1913 DriverBinding
->DriverBindingHandle
,
1914 &gEfiDriverBindingProtocolGuid
,
1916 &gEfiComponentNameProtocolGuid
,
1918 &gEfiComponentName2ProtocolGuid
,
1920 &gEfiDriverConfigurationProtocolGuid
,
1921 DriverConfiguration
,
1922 &gEfiDriverDiagnostics2ProtocolGuid
,
1930 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
1931 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1932 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1933 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1934 DriverBinding
->DriverBindingHandle
,
1935 &gEfiDriverBindingProtocolGuid
,
1937 &gEfiDriverConfigurationProtocolGuid
,
1938 DriverConfiguration
,
1939 &gEfiDriverDiagnosticsProtocolGuid
,
1944 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1945 DriverBinding
->DriverBindingHandle
,
1946 &gEfiDriverBindingProtocolGuid
,
1948 &gEfiComponentName2ProtocolGuid
,
1950 &gEfiDriverConfigurationProtocolGuid
,
1951 DriverConfiguration
,
1952 &gEfiDriverDiagnosticsProtocolGuid
,
1958 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1959 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1960 DriverBinding
->DriverBindingHandle
,
1961 &gEfiDriverBindingProtocolGuid
,
1963 &gEfiComponentNameProtocolGuid
,
1965 &gEfiDriverConfigurationProtocolGuid
,
1966 DriverConfiguration
,
1967 &gEfiDriverDiagnosticsProtocolGuid
,
1972 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1973 DriverBinding
->DriverBindingHandle
,
1974 &gEfiDriverBindingProtocolGuid
,
1976 &gEfiComponentNameProtocolGuid
,
1978 &gEfiComponentName2ProtocolGuid
,
1980 &gEfiDriverConfigurationProtocolGuid
,
1981 DriverConfiguration
,
1982 &gEfiDriverDiagnosticsProtocolGuid
,
1989 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
1990 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
1991 Status
= gBS
->UninstallMultipleProtocolInterfaces (
1992 DriverBinding
->DriverBindingHandle
,
1993 &gEfiDriverBindingProtocolGuid
,
1995 &gEfiDriverConfigurationProtocolGuid
,
1996 DriverConfiguration
,
1997 &gEfiDriverDiagnosticsProtocolGuid
,
1999 &gEfiDriverDiagnostics2ProtocolGuid
,
2004 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2005 DriverBinding
->DriverBindingHandle
,
2006 &gEfiDriverBindingProtocolGuid
,
2008 &gEfiComponentName2ProtocolGuid
,
2010 &gEfiDriverConfigurationProtocolGuid
,
2011 DriverConfiguration
,
2012 &gEfiDriverDiagnosticsProtocolGuid
,
2014 &gEfiDriverDiagnostics2ProtocolGuid
,
2020 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2021 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2022 DriverBinding
->DriverBindingHandle
,
2023 &gEfiDriverBindingProtocolGuid
,
2025 &gEfiComponentNameProtocolGuid
,
2027 &gEfiDriverConfigurationProtocolGuid
,
2028 DriverConfiguration
,
2029 &gEfiDriverDiagnosticsProtocolGuid
,
2031 &gEfiDriverDiagnostics2ProtocolGuid
,
2036 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2037 DriverBinding
->DriverBindingHandle
,
2038 &gEfiDriverBindingProtocolGuid
,
2040 &gEfiComponentNameProtocolGuid
,
2042 &gEfiComponentName2ProtocolGuid
,
2044 &gEfiDriverConfigurationProtocolGuid
,
2045 DriverConfiguration
,
2046 &gEfiDriverDiagnosticsProtocolGuid
,
2048 &gEfiDriverDiagnostics2ProtocolGuid
,
2058 if (DriverConfiguration
== NULL
) {
2059 if ((DriverDiagnostics
== NULL
) || FeaturePcdGet (PcdDriverDiagnosticsDisable
)) {
2060 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
2061 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
2062 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2063 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2064 DriverBinding
->DriverBindingHandle
,
2065 &gEfiDriverBindingProtocolGuid
,
2067 &gEfiDriverConfiguration2ProtocolGuid
,
2068 DriverConfiguration2
,
2072 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2073 DriverBinding
->DriverBindingHandle
,
2074 &gEfiDriverBindingProtocolGuid
,
2076 &gEfiComponentName2ProtocolGuid
,
2078 &gEfiDriverConfiguration2ProtocolGuid
,
2079 DriverConfiguration2
,
2084 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2085 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2086 DriverBinding
->DriverBindingHandle
,
2087 &gEfiDriverBindingProtocolGuid
,
2089 &gEfiComponentNameProtocolGuid
,
2091 &gEfiDriverConfiguration2ProtocolGuid
,
2092 DriverConfiguration2
,
2096 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2097 DriverBinding
->DriverBindingHandle
,
2098 &gEfiDriverBindingProtocolGuid
,
2100 &gEfiComponentNameProtocolGuid
,
2102 &gEfiComponentName2ProtocolGuid
,
2104 &gEfiDriverConfiguration2ProtocolGuid
,
2105 DriverConfiguration2
,
2111 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
2112 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2113 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2114 DriverBinding
->DriverBindingHandle
,
2115 &gEfiDriverBindingProtocolGuid
,
2117 &gEfiDriverDiagnostics2ProtocolGuid
,
2119 &gEfiDriverConfiguration2ProtocolGuid
,
2120 DriverConfiguration2
,
2124 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2125 DriverBinding
->DriverBindingHandle
,
2126 &gEfiDriverBindingProtocolGuid
,
2128 &gEfiComponentName2ProtocolGuid
,
2130 &gEfiDriverConfiguration2ProtocolGuid
,
2131 DriverConfiguration2
,
2132 &gEfiDriverDiagnostics2ProtocolGuid
,
2138 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2139 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2140 DriverBinding
->DriverBindingHandle
,
2141 &gEfiDriverBindingProtocolGuid
,
2143 &gEfiComponentNameProtocolGuid
,
2145 &gEfiDriverConfiguration2ProtocolGuid
,
2146 DriverConfiguration2
,
2147 &gEfiDriverDiagnostics2ProtocolGuid
,
2152 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2153 DriverBinding
->DriverBindingHandle
,
2154 &gEfiDriverBindingProtocolGuid
,
2156 &gEfiComponentNameProtocolGuid
,
2158 &gEfiComponentName2ProtocolGuid
,
2160 &gEfiDriverConfiguration2ProtocolGuid
,
2161 DriverConfiguration2
,
2162 &gEfiDriverDiagnostics2ProtocolGuid
,
2170 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
2171 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
2172 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2173 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2174 DriverBinding
->DriverBindingHandle
,
2175 &gEfiDriverBindingProtocolGuid
,
2177 &gEfiDriverDiagnosticsProtocolGuid
,
2179 &gEfiDriverConfiguration2ProtocolGuid
,
2180 DriverConfiguration2
,
2184 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2185 DriverBinding
->DriverBindingHandle
,
2186 &gEfiDriverBindingProtocolGuid
,
2188 &gEfiComponentName2ProtocolGuid
,
2190 &gEfiDriverConfiguration2ProtocolGuid
,
2191 DriverConfiguration2
,
2192 &gEfiDriverDiagnosticsProtocolGuid
,
2198 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2199 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2200 DriverBinding
->DriverBindingHandle
,
2201 &gEfiDriverBindingProtocolGuid
,
2203 &gEfiComponentNameProtocolGuid
,
2205 &gEfiDriverDiagnosticsProtocolGuid
,
2207 &gEfiDriverConfiguration2ProtocolGuid
,
2208 DriverConfiguration2
,
2212 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2213 DriverBinding
->DriverBindingHandle
,
2214 &gEfiDriverBindingProtocolGuid
,
2216 &gEfiComponentNameProtocolGuid
,
2218 &gEfiComponentName2ProtocolGuid
,
2220 &gEfiDriverConfiguration2ProtocolGuid
,
2221 DriverConfiguration2
,
2222 &gEfiDriverDiagnosticsProtocolGuid
,
2229 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
2230 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2231 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2232 DriverBinding
->DriverBindingHandle
,
2233 &gEfiDriverBindingProtocolGuid
,
2235 &gEfiDriverConfiguration2ProtocolGuid
,
2236 DriverConfiguration2
,
2237 &gEfiDriverDiagnosticsProtocolGuid
,
2239 &gEfiDriverDiagnostics2ProtocolGuid
,
2244 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2245 DriverBinding
->DriverBindingHandle
,
2246 &gEfiDriverBindingProtocolGuid
,
2248 &gEfiComponentName2ProtocolGuid
,
2250 &gEfiDriverConfiguration2ProtocolGuid
,
2251 DriverConfiguration2
,
2252 &gEfiDriverDiagnosticsProtocolGuid
,
2254 &gEfiDriverDiagnostics2ProtocolGuid
,
2260 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2261 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2262 DriverBinding
->DriverBindingHandle
,
2263 &gEfiDriverBindingProtocolGuid
,
2265 &gEfiComponentNameProtocolGuid
,
2267 &gEfiDriverConfiguration2ProtocolGuid
,
2268 DriverConfiguration2
,
2269 &gEfiDriverDiagnosticsProtocolGuid
,
2271 &gEfiDriverDiagnostics2ProtocolGuid
,
2276 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2277 DriverBinding
->DriverBindingHandle
,
2278 &gEfiDriverBindingProtocolGuid
,
2280 &gEfiComponentNameProtocolGuid
,
2282 &gEfiComponentName2ProtocolGuid
,
2284 &gEfiDriverConfiguration2ProtocolGuid
,
2285 DriverConfiguration2
,
2286 &gEfiDriverDiagnosticsProtocolGuid
,
2288 &gEfiDriverDiagnostics2ProtocolGuid
,
2297 if ((DriverDiagnostics
== NULL
) || FeaturePcdGet (PcdDriverDiagnosticsDisable
)) {
2298 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
2299 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
2300 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2301 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2302 DriverBinding
->DriverBindingHandle
,
2303 &gEfiDriverBindingProtocolGuid
,
2305 &gEfiDriverConfigurationProtocolGuid
,
2306 DriverConfiguration
,
2307 &gEfiDriverConfiguration2ProtocolGuid
,
2308 DriverConfiguration2
,
2312 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2313 DriverBinding
->DriverBindingHandle
,
2314 &gEfiDriverBindingProtocolGuid
,
2316 &gEfiComponentName2ProtocolGuid
,
2318 &gEfiDriverConfigurationProtocolGuid
,
2319 DriverConfiguration
,
2320 &gEfiDriverConfiguration2ProtocolGuid
,
2321 DriverConfiguration2
,
2326 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2327 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2328 DriverBinding
->DriverBindingHandle
,
2329 &gEfiDriverBindingProtocolGuid
,
2331 &gEfiComponentNameProtocolGuid
,
2333 &gEfiDriverConfigurationProtocolGuid
,
2334 DriverConfiguration
,
2335 &gEfiDriverConfiguration2ProtocolGuid
,
2336 DriverConfiguration2
,
2340 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2341 DriverBinding
->DriverBindingHandle
,
2342 &gEfiDriverBindingProtocolGuid
,
2344 &gEfiComponentNameProtocolGuid
,
2346 &gEfiComponentName2ProtocolGuid
,
2348 &gEfiDriverConfigurationProtocolGuid
,
2349 DriverConfiguration
,
2350 &gEfiDriverConfiguration2ProtocolGuid
,
2351 DriverConfiguration2
,
2357 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
2358 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2359 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2360 DriverBinding
->DriverBindingHandle
,
2361 &gEfiDriverBindingProtocolGuid
,
2363 &gEfiDriverConfigurationProtocolGuid
,
2364 DriverConfiguration
,
2365 &gEfiDriverConfiguration2ProtocolGuid
,
2366 DriverConfiguration2
,
2367 &gEfiDriverDiagnostics2ProtocolGuid
,
2372 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2373 DriverBinding
->DriverBindingHandle
,
2374 &gEfiDriverBindingProtocolGuid
,
2376 &gEfiComponentName2ProtocolGuid
,
2378 &gEfiDriverConfigurationProtocolGuid
,
2379 DriverConfiguration
,
2380 &gEfiDriverConfiguration2ProtocolGuid
,
2381 DriverConfiguration2
,
2382 &gEfiDriverDiagnostics2ProtocolGuid
,
2388 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2389 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2390 DriverBinding
->DriverBindingHandle
,
2391 &gEfiDriverBindingProtocolGuid
,
2393 &gEfiComponentNameProtocolGuid
,
2395 &gEfiDriverConfigurationProtocolGuid
,
2396 DriverConfiguration
,
2397 &gEfiDriverConfiguration2ProtocolGuid
,
2398 DriverConfiguration2
,
2399 &gEfiDriverDiagnostics2ProtocolGuid
,
2404 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2405 DriverBinding
->DriverBindingHandle
,
2406 &gEfiDriverBindingProtocolGuid
,
2408 &gEfiComponentNameProtocolGuid
,
2410 &gEfiComponentName2ProtocolGuid
,
2412 &gEfiDriverConfigurationProtocolGuid
,
2413 DriverConfiguration
,
2414 &gEfiDriverConfiguration2ProtocolGuid
,
2415 DriverConfiguration2
,
2416 &gEfiDriverDiagnostics2ProtocolGuid
,
2424 if ((DriverDiagnostics2
== NULL
) || FeaturePcdGet (PcdDriverDiagnostics2Disable
)) {
2425 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
2426 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2427 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2428 DriverBinding
->DriverBindingHandle
,
2429 &gEfiDriverBindingProtocolGuid
,
2431 &gEfiDriverConfigurationProtocolGuid
,
2432 DriverConfiguration
,
2433 &gEfiDriverConfiguration2ProtocolGuid
,
2434 DriverConfiguration2
,
2435 &gEfiDriverDiagnosticsProtocolGuid
,
2440 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2441 DriverBinding
->DriverBindingHandle
,
2442 &gEfiDriverBindingProtocolGuid
,
2444 &gEfiComponentName2ProtocolGuid
,
2446 &gEfiDriverConfigurationProtocolGuid
,
2447 DriverConfiguration
,
2448 &gEfiDriverConfiguration2ProtocolGuid
,
2449 DriverConfiguration2
,
2450 &gEfiDriverDiagnosticsProtocolGuid
,
2456 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2457 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2458 DriverBinding
->DriverBindingHandle
,
2459 &gEfiDriverBindingProtocolGuid
,
2461 &gEfiComponentNameProtocolGuid
,
2463 &gEfiDriverConfigurationProtocolGuid
,
2464 DriverConfiguration
,
2465 &gEfiDriverConfiguration2ProtocolGuid
,
2466 DriverConfiguration2
,
2467 &gEfiDriverDiagnosticsProtocolGuid
,
2472 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2473 DriverBinding
->DriverBindingHandle
,
2474 &gEfiDriverBindingProtocolGuid
,
2476 &gEfiComponentNameProtocolGuid
,
2478 &gEfiComponentName2ProtocolGuid
,
2480 &gEfiDriverConfigurationProtocolGuid
,
2481 DriverConfiguration
,
2482 &gEfiDriverConfiguration2ProtocolGuid
,
2483 DriverConfiguration2
,
2484 &gEfiDriverDiagnosticsProtocolGuid
,
2491 if ((ComponentName
== NULL
) || FeaturePcdGet (PcdComponentNameDisable
)) {
2492 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2493 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2494 DriverBinding
->DriverBindingHandle
,
2495 &gEfiDriverBindingProtocolGuid
,
2497 &gEfiDriverConfigurationProtocolGuid
,
2498 DriverConfiguration
,
2499 &gEfiDriverConfiguration2ProtocolGuid
,
2500 DriverConfiguration2
,
2501 &gEfiDriverDiagnosticsProtocolGuid
,
2503 &gEfiDriverDiagnostics2ProtocolGuid
,
2508 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2509 DriverBinding
->DriverBindingHandle
,
2510 &gEfiDriverBindingProtocolGuid
,
2512 &gEfiComponentName2ProtocolGuid
,
2514 &gEfiDriverConfigurationProtocolGuid
,
2515 DriverConfiguration
,
2516 &gEfiDriverConfiguration2ProtocolGuid
,
2517 DriverConfiguration2
,
2518 &gEfiDriverDiagnosticsProtocolGuid
,
2520 &gEfiDriverDiagnostics2ProtocolGuid
,
2526 if ((ComponentName2
== NULL
) || FeaturePcdGet (PcdComponentName2Disable
)) {
2527 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2528 DriverBinding
->DriverBindingHandle
,
2529 &gEfiDriverBindingProtocolGuid
,
2531 &gEfiComponentNameProtocolGuid
,
2533 &gEfiDriverConfigurationProtocolGuid
,
2534 DriverConfiguration
,
2535 &gEfiDriverConfiguration2ProtocolGuid
,
2536 DriverConfiguration2
,
2537 &gEfiDriverDiagnosticsProtocolGuid
,
2539 &gEfiDriverDiagnostics2ProtocolGuid
,
2544 Status
= gBS
->UninstallMultipleProtocolInterfaces (
2545 DriverBinding
->DriverBindingHandle
,
2546 &gEfiDriverBindingProtocolGuid
,
2548 &gEfiComponentNameProtocolGuid
,
2550 &gEfiComponentName2ProtocolGuid
,
2552 &gEfiDriverConfigurationProtocolGuid
,
2553 DriverConfiguration
,
2554 &gEfiDriverConfiguration2ProtocolGuid
,
2555 DriverConfiguration2
,
2556 &gEfiDriverDiagnosticsProtocolGuid
,
2558 &gEfiDriverDiagnostics2ProtocolGuid
,
2570 // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
2572 ASSERT_EFI_ERROR (Status
);