TianoCore EDK2 master
Loading...
Searching...
No Matches
UefiDriverModel.c
Go to the documentation of this file.
1
11#include "UefiLibInternal.h"
12
36EFIAPI
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
42 )
43{
44 EFI_STATUS Status;
45
46 ASSERT (DriverBinding != NULL);
47
48 //
49 // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
50 //
51 DriverBinding->ImageHandle = ImageHandle;
52 DriverBinding->DriverBindingHandle = DriverBindingHandle;
53
54 Status = gBS->InstallMultipleProtocolInterfaces (
55 &DriverBinding->DriverBindingHandle,
56 &gEfiDriverBindingProtocolGuid,
57 DriverBinding,
58 NULL
59 );
60 //
61 // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
62 //
63 ASSERT_EFI_ERROR (Status);
64
65 return Status;
66}
67
81EFIAPI
83 IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding
84 )
85{
86 EFI_STATUS Status;
87
88 ASSERT (DriverBinding != NULL);
89
90 Status = gBS->UninstallMultipleProtocolInterfaces (
91 DriverBinding->DriverBindingHandle,
92 &gEfiDriverBindingProtocolGuid,
93 DriverBinding,
94 NULL
95 );
96 //
97 // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
98 //
99 ASSERT_EFI_ERROR (Status);
100
101 return Status;
102}
103
131EFIAPI
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
140 )
141{
142 EFI_STATUS Status;
143
144 ASSERT (DriverBinding != NULL);
145
146 //
147 // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
148 //
149 DriverBinding->ImageHandle = ImageHandle;
150 DriverBinding->DriverBindingHandle = DriverBindingHandle;
151
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,
158 DriverBinding,
159 NULL
160 );
161 } else {
162 Status = gBS->InstallMultipleProtocolInterfaces (
163 &DriverBinding->DriverBindingHandle,
164 &gEfiDriverBindingProtocolGuid,
165 DriverBinding,
166 &gEfiComponentNameProtocolGuid,
167 ComponentName,
168 NULL
169 );
170 }
171 } else {
172 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
173 Status = gBS->InstallMultipleProtocolInterfaces (
174 &DriverBinding->DriverBindingHandle,
175 &gEfiDriverBindingProtocolGuid,
176 DriverBinding,
177 &gEfiDriverConfigurationProtocolGuid,
178 DriverConfiguration,
179 NULL
180 );
181 } else {
182 Status = gBS->InstallMultipleProtocolInterfaces (
183 &DriverBinding->DriverBindingHandle,
184 &gEfiDriverBindingProtocolGuid,
185 DriverBinding,
186 &gEfiComponentNameProtocolGuid,
187 ComponentName,
188 &gEfiDriverConfigurationProtocolGuid,
189 DriverConfiguration,
190 NULL
191 );
192 }
193 }
194 } else {
195 if (DriverConfiguration == NULL) {
196 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
197 Status = gBS->InstallMultipleProtocolInterfaces (
198 &DriverBinding->DriverBindingHandle,
199 &gEfiDriverBindingProtocolGuid,
200 DriverBinding,
201 &gEfiDriverDiagnosticsProtocolGuid,
202 DriverDiagnostics,
203 NULL
204 );
205 } else {
206 Status = gBS->InstallMultipleProtocolInterfaces (
207 &DriverBinding->DriverBindingHandle,
208 &gEfiDriverBindingProtocolGuid,
209 DriverBinding,
210 &gEfiComponentNameProtocolGuid,
211 ComponentName,
212 &gEfiDriverDiagnosticsProtocolGuid,
213 DriverDiagnostics,
214 NULL
215 );
216 }
217 } else {
218 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
219 Status = gBS->InstallMultipleProtocolInterfaces (
220 &DriverBinding->DriverBindingHandle,
221 &gEfiDriverBindingProtocolGuid,
222 DriverBinding,
223 &gEfiDriverConfigurationProtocolGuid,
224 DriverConfiguration,
225 &gEfiDriverDiagnosticsProtocolGuid,
226 DriverDiagnostics,
227 NULL
228 );
229 } else {
230 Status = gBS->InstallMultipleProtocolInterfaces (
231 &DriverBinding->DriverBindingHandle,
232 &gEfiDriverBindingProtocolGuid,
233 DriverBinding,
234 &gEfiComponentNameProtocolGuid,
235 ComponentName,
236 &gEfiDriverConfigurationProtocolGuid,
237 DriverConfiguration,
238 &gEfiDriverDiagnosticsProtocolGuid,
239 DriverDiagnostics,
240 NULL
241 );
242 }
243 }
244 }
245
246 //
247 // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
248 //
249 ASSERT_EFI_ERROR (Status);
250
251 return Status;
252}
253
271EFIAPI
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
277 )
278{
279 EFI_STATUS Status;
280
281 ASSERT (DriverBinding != NULL);
282
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,
289 DriverBinding,
290 NULL
291 );
292 } else {
293 Status = gBS->UninstallMultipleProtocolInterfaces (
294 DriverBinding->DriverBindingHandle,
295 &gEfiDriverBindingProtocolGuid,
296 DriverBinding,
297 &gEfiComponentNameProtocolGuid,
298 ComponentName,
299 NULL
300 );
301 }
302 } else {
303 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
304 Status = gBS->UninstallMultipleProtocolInterfaces (
305 DriverBinding->DriverBindingHandle,
306 &gEfiDriverBindingProtocolGuid,
307 DriverBinding,
308 &gEfiDriverConfigurationProtocolGuid,
309 DriverConfiguration,
310 NULL
311 );
312 } else {
313 Status = gBS->UninstallMultipleProtocolInterfaces (
314 DriverBinding->DriverBindingHandle,
315 &gEfiDriverBindingProtocolGuid,
316 DriverBinding,
317 &gEfiComponentNameProtocolGuid,
318 ComponentName,
319 &gEfiDriverConfigurationProtocolGuid,
320 DriverConfiguration,
321 NULL
322 );
323 }
324 }
325 } else {
326 if (DriverConfiguration == NULL) {
327 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
328 Status = gBS->UninstallMultipleProtocolInterfaces (
329 DriverBinding->DriverBindingHandle,
330 &gEfiDriverBindingProtocolGuid,
331 DriverBinding,
332 &gEfiDriverDiagnosticsProtocolGuid,
333 DriverDiagnostics,
334 NULL
335 );
336 } else {
337 Status = gBS->UninstallMultipleProtocolInterfaces (
338 DriverBinding->DriverBindingHandle,
339 &gEfiDriverBindingProtocolGuid,
340 DriverBinding,
341 &gEfiComponentNameProtocolGuid,
342 ComponentName,
343 &gEfiDriverDiagnosticsProtocolGuid,
344 DriverDiagnostics,
345 NULL
346 );
347 }
348 } else {
349 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
350 Status = gBS->UninstallMultipleProtocolInterfaces (
351 DriverBinding->DriverBindingHandle,
352 &gEfiDriverBindingProtocolGuid,
353 DriverBinding,
354 &gEfiDriverConfigurationProtocolGuid,
355 DriverConfiguration,
356 &gEfiDriverDiagnosticsProtocolGuid,
357 DriverDiagnostics,
358 NULL
359 );
360 } else {
361 Status = gBS->UninstallMultipleProtocolInterfaces (
362 DriverBinding->DriverBindingHandle,
363 &gEfiDriverBindingProtocolGuid,
364 DriverBinding,
365 &gEfiComponentNameProtocolGuid,
366 ComponentName,
367 &gEfiDriverConfigurationProtocolGuid,
368 DriverConfiguration,
369 &gEfiDriverDiagnosticsProtocolGuid,
370 DriverDiagnostics,
371 NULL
372 );
373 }
374 }
375 }
376
377 //
378 // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
379 //
380 ASSERT_EFI_ERROR (Status);
381
382 return Status;
383}
384
409EFIAPI
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
417 )
418{
419 EFI_STATUS Status;
420
421 ASSERT (DriverBinding != NULL);
422
423 //
424 // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
425 //
426 DriverBinding->ImageHandle = ImageHandle;
427 DriverBinding->DriverBindingHandle = DriverBindingHandle;
428
429 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
430 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
431 Status = gBS->InstallMultipleProtocolInterfaces (
432 &DriverBinding->DriverBindingHandle,
433 &gEfiDriverBindingProtocolGuid,
434 DriverBinding,
435 NULL
436 );
437 } else {
438 Status = gBS->InstallMultipleProtocolInterfaces (
439 &DriverBinding->DriverBindingHandle,
440 &gEfiDriverBindingProtocolGuid,
441 DriverBinding,
442 &gEfiComponentName2ProtocolGuid,
443 ComponentName2,
444 NULL
445 );
446 }
447 } else {
448 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
449 Status = gBS->InstallMultipleProtocolInterfaces (
450 &DriverBinding->DriverBindingHandle,
451 &gEfiDriverBindingProtocolGuid,
452 DriverBinding,
453 &gEfiComponentNameProtocolGuid,
454 ComponentName,
455 NULL
456 );
457 } else {
458 Status = gBS->InstallMultipleProtocolInterfaces (
459 &DriverBinding->DriverBindingHandle,
460 &gEfiDriverBindingProtocolGuid,
461 DriverBinding,
462 &gEfiComponentNameProtocolGuid,
463 ComponentName,
464 &gEfiComponentName2ProtocolGuid,
465 ComponentName2,
466 NULL
467 );
468 }
469 }
470
471 //
472 // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
473 //
474 ASSERT_EFI_ERROR (Status);
475
476 return Status;
477}
478
494EFIAPI
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
499 )
500{
501 EFI_STATUS Status;
502
503 ASSERT (DriverBinding != NULL);
504
505 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
506 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
507 Status = gBS->UninstallMultipleProtocolInterfaces (
508 DriverBinding->DriverBindingHandle,
509 &gEfiDriverBindingProtocolGuid,
510 DriverBinding,
511 NULL
512 );
513 } else {
514 Status = gBS->UninstallMultipleProtocolInterfaces (
515 DriverBinding->DriverBindingHandle,
516 &gEfiDriverBindingProtocolGuid,
517 DriverBinding,
518 &gEfiComponentName2ProtocolGuid,
519 ComponentName2,
520 NULL
521 );
522 }
523 } else {
524 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
525 Status = gBS->UninstallMultipleProtocolInterfaces (
526 DriverBinding->DriverBindingHandle,
527 &gEfiDriverBindingProtocolGuid,
528 DriverBinding,
529 &gEfiComponentNameProtocolGuid,
530 ComponentName,
531 NULL
532 );
533 } else {
534 Status = gBS->UninstallMultipleProtocolInterfaces (
535 DriverBinding->DriverBindingHandle,
536 &gEfiDriverBindingProtocolGuid,
537 DriverBinding,
538 &gEfiComponentNameProtocolGuid,
539 ComponentName,
540 &gEfiComponentName2ProtocolGuid,
541 ComponentName2,
542 NULL
543 );
544 }
545 }
546
547 //
548 // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
549 //
550 ASSERT_EFI_ERROR (Status);
551
552 return Status;
553}
554
585EFIAPI
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
597 )
598{
599 EFI_STATUS Status;
600
601 ASSERT (DriverBinding != NULL);
602
603 //
604 // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
605 //
606 DriverBinding->ImageHandle = ImageHandle;
607 DriverBinding->DriverBindingHandle = DriverBindingHandle;
608
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,
618 DriverBinding,
619 NULL
620 );
621 } else {
622 Status = gBS->InstallMultipleProtocolInterfaces (
623 &DriverBinding->DriverBindingHandle,
624 &gEfiDriverBindingProtocolGuid,
625 DriverBinding,
626 &gEfiComponentName2ProtocolGuid,
627 ComponentName2,
628 NULL
629 );
630 }
631 } else {
632 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
633 Status = gBS->InstallMultipleProtocolInterfaces (
634 &DriverBinding->DriverBindingHandle,
635 &gEfiDriverBindingProtocolGuid,
636 DriverBinding,
637 &gEfiComponentNameProtocolGuid,
638 ComponentName,
639 NULL
640 );
641 } else {
642 Status = gBS->InstallMultipleProtocolInterfaces (
643 &DriverBinding->DriverBindingHandle,
644 &gEfiDriverBindingProtocolGuid,
645 DriverBinding,
646 &gEfiComponentNameProtocolGuid,
647 ComponentName,
648 &gEfiComponentName2ProtocolGuid,
649 ComponentName2,
650 NULL
651 );
652 }
653 }
654 } else {
655 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
656 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
657 Status = gBS->InstallMultipleProtocolInterfaces (
658 &DriverBinding->DriverBindingHandle,
659 &gEfiDriverBindingProtocolGuid,
660 DriverBinding,
661 &gEfiDriverDiagnostics2ProtocolGuid,
662 DriverDiagnostics2,
663 NULL
664 );
665 } else {
666 Status = gBS->InstallMultipleProtocolInterfaces (
667 &DriverBinding->DriverBindingHandle,
668 &gEfiDriverBindingProtocolGuid,
669 DriverBinding,
670 &gEfiComponentName2ProtocolGuid,
671 ComponentName2,
672 &gEfiDriverDiagnostics2ProtocolGuid,
673 DriverDiagnostics2,
674 NULL
675 );
676 }
677 } else {
678 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
679 Status = gBS->InstallMultipleProtocolInterfaces (
680 &DriverBinding->DriverBindingHandle,
681 &gEfiDriverBindingProtocolGuid,
682 DriverBinding,
683 &gEfiComponentNameProtocolGuid,
684 ComponentName,
685 &gEfiDriverDiagnostics2ProtocolGuid,
686 DriverDiagnostics2,
687 NULL
688 );
689 } else {
690 Status = gBS->InstallMultipleProtocolInterfaces (
691 &DriverBinding->DriverBindingHandle,
692 &gEfiDriverBindingProtocolGuid,
693 DriverBinding,
694 &gEfiComponentNameProtocolGuid,
695 ComponentName,
696 &gEfiComponentName2ProtocolGuid,
697 ComponentName2,
698 &gEfiDriverDiagnostics2ProtocolGuid,
699 DriverDiagnostics2,
700 NULL
701 );
702 }
703 }
704 }
705 } else {
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,
712 DriverBinding,
713 &gEfiDriverDiagnosticsProtocolGuid,
714 DriverDiagnostics,
715 NULL
716 );
717 } else {
718 Status = gBS->InstallMultipleProtocolInterfaces (
719 &DriverBinding->DriverBindingHandle,
720 &gEfiDriverBindingProtocolGuid,
721 DriverBinding,
722 &gEfiComponentName2ProtocolGuid,
723 ComponentName2,
724 &gEfiDriverDiagnosticsProtocolGuid,
725 DriverDiagnostics,
726 NULL
727 );
728 }
729 } else {
730 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
731 Status = gBS->InstallMultipleProtocolInterfaces (
732 &DriverBinding->DriverBindingHandle,
733 &gEfiDriverBindingProtocolGuid,
734 DriverBinding,
735 &gEfiComponentNameProtocolGuid,
736 ComponentName,
737 &gEfiDriverDiagnosticsProtocolGuid,
738 DriverDiagnostics,
739 NULL
740 );
741 } else {
742 Status = gBS->InstallMultipleProtocolInterfaces (
743 &DriverBinding->DriverBindingHandle,
744 &gEfiDriverBindingProtocolGuid,
745 DriverBinding,
746 &gEfiComponentNameProtocolGuid,
747 ComponentName,
748 &gEfiComponentName2ProtocolGuid,
749 ComponentName2,
750 &gEfiDriverDiagnosticsProtocolGuid,
751 DriverDiagnostics,
752 NULL
753 );
754 }
755 }
756 } else {
757 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
758 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
759 Status = gBS->InstallMultipleProtocolInterfaces (
760 &DriverBinding->DriverBindingHandle,
761 &gEfiDriverBindingProtocolGuid,
762 DriverBinding,
763 &gEfiDriverDiagnosticsProtocolGuid,
764 DriverDiagnostics,
765 &gEfiDriverDiagnostics2ProtocolGuid,
766 DriverDiagnostics2,
767 NULL
768 );
769 } else {
770 Status = gBS->InstallMultipleProtocolInterfaces (
771 &DriverBinding->DriverBindingHandle,
772 &gEfiDriverBindingProtocolGuid,
773 DriverBinding,
774 &gEfiComponentName2ProtocolGuid,
775 ComponentName2,
776 &gEfiDriverDiagnosticsProtocolGuid,
777 DriverDiagnostics,
778 &gEfiDriverDiagnostics2ProtocolGuid,
779 DriverDiagnostics2,
780 NULL
781 );
782 }
783 } else {
784 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
785 Status = gBS->InstallMultipleProtocolInterfaces (
786 &DriverBinding->DriverBindingHandle,
787 &gEfiDriverBindingProtocolGuid,
788 DriverBinding,
789 &gEfiComponentNameProtocolGuid,
790 ComponentName,
791 &gEfiDriverDiagnosticsProtocolGuid,
792 DriverDiagnostics,
793 &gEfiDriverDiagnostics2ProtocolGuid,
794 DriverDiagnostics2,
795 NULL
796 );
797 } else {
798 Status = gBS->InstallMultipleProtocolInterfaces (
799 &DriverBinding->DriverBindingHandle,
800 &gEfiDriverBindingProtocolGuid,
801 DriverBinding,
802 &gEfiComponentNameProtocolGuid,
803 ComponentName,
804 &gEfiComponentName2ProtocolGuid,
805 ComponentName2,
806 &gEfiDriverDiagnosticsProtocolGuid,
807 DriverDiagnostics,
808 &gEfiDriverDiagnostics2ProtocolGuid,
809 DriverDiagnostics2,
810 NULL
811 );
812 }
813 }
814 }
815 }
816 } else {
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,
824 DriverBinding,
825 &gEfiDriverConfigurationProtocolGuid,
826 DriverConfiguration,
827 NULL
828 );
829 } else {
830 Status = gBS->InstallMultipleProtocolInterfaces (
831 &DriverBinding->DriverBindingHandle,
832 &gEfiDriverBindingProtocolGuid,
833 DriverBinding,
834 &gEfiComponentName2ProtocolGuid,
835 ComponentName2,
836 &gEfiDriverConfigurationProtocolGuid,
837 DriverConfiguration,
838 NULL
839 );
840 }
841 } else {
842 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
843 Status = gBS->InstallMultipleProtocolInterfaces (
844 &DriverBinding->DriverBindingHandle,
845 &gEfiDriverBindingProtocolGuid,
846 DriverBinding,
847 &gEfiComponentNameProtocolGuid,
848 ComponentName,
849 &gEfiDriverConfigurationProtocolGuid,
850 DriverConfiguration,
851 NULL
852 );
853 } else {
854 Status = gBS->InstallMultipleProtocolInterfaces (
855 &DriverBinding->DriverBindingHandle,
856 &gEfiDriverBindingProtocolGuid,
857 DriverBinding,
858 &gEfiComponentNameProtocolGuid,
859 ComponentName,
860 &gEfiComponentName2ProtocolGuid,
861 ComponentName2,
862 &gEfiDriverConfigurationProtocolGuid,
863 DriverConfiguration,
864 NULL
865 );
866 }
867 }
868 } else {
869 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
870 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
871 Status = gBS->InstallMultipleProtocolInterfaces (
872 &DriverBinding->DriverBindingHandle,
873 &gEfiDriverBindingProtocolGuid,
874 DriverBinding,
875 &gEfiDriverConfigurationProtocolGuid,
876 DriverConfiguration,
877 &gEfiDriverDiagnostics2ProtocolGuid,
878 DriverDiagnostics2,
879 NULL
880 );
881 } else {
882 Status = gBS->InstallMultipleProtocolInterfaces (
883 &DriverBinding->DriverBindingHandle,
884 &gEfiDriverBindingProtocolGuid,
885 DriverBinding,
886 &gEfiComponentName2ProtocolGuid,
887 ComponentName2,
888 &gEfiDriverConfigurationProtocolGuid,
889 DriverConfiguration,
890 &gEfiDriverDiagnostics2ProtocolGuid,
891 DriverDiagnostics2,
892 NULL
893 );
894 }
895 } else {
896 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
897 Status = gBS->InstallMultipleProtocolInterfaces (
898 &DriverBinding->DriverBindingHandle,
899 &gEfiDriverBindingProtocolGuid,
900 DriverBinding,
901 &gEfiComponentNameProtocolGuid,
902 ComponentName,
903 &gEfiDriverConfigurationProtocolGuid,
904 DriverConfiguration,
905 &gEfiDriverDiagnostics2ProtocolGuid,
906 DriverDiagnostics2,
907 NULL
908 );
909 } else {
910 Status = gBS->InstallMultipleProtocolInterfaces (
911 &DriverBinding->DriverBindingHandle,
912 &gEfiDriverBindingProtocolGuid,
913 DriverBinding,
914 &gEfiComponentNameProtocolGuid,
915 ComponentName,
916 &gEfiComponentName2ProtocolGuid,
917 ComponentName2,
918 &gEfiDriverConfigurationProtocolGuid,
919 DriverConfiguration,
920 &gEfiDriverDiagnostics2ProtocolGuid,
921 DriverDiagnostics2,
922 NULL
923 );
924 }
925 }
926 }
927 } else {
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,
934 DriverBinding,
935 &gEfiDriverConfigurationProtocolGuid,
936 DriverConfiguration,
937 &gEfiDriverDiagnosticsProtocolGuid,
938 DriverDiagnostics,
939 NULL
940 );
941 } else {
942 Status = gBS->InstallMultipleProtocolInterfaces (
943 &DriverBinding->DriverBindingHandle,
944 &gEfiDriverBindingProtocolGuid,
945 DriverBinding,
946 &gEfiComponentName2ProtocolGuid,
947 ComponentName2,
948 &gEfiDriverConfigurationProtocolGuid,
949 DriverConfiguration,
950 &gEfiDriverDiagnosticsProtocolGuid,
951 DriverDiagnostics,
952 NULL
953 );
954 }
955 } else {
956 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
957 Status = gBS->InstallMultipleProtocolInterfaces (
958 &DriverBinding->DriverBindingHandle,
959 &gEfiDriverBindingProtocolGuid,
960 DriverBinding,
961 &gEfiComponentNameProtocolGuid,
962 ComponentName,
963 &gEfiDriverConfigurationProtocolGuid,
964 DriverConfiguration,
965 &gEfiDriverDiagnosticsProtocolGuid,
966 DriverDiagnostics,
967 NULL
968 );
969 } else {
970 Status = gBS->InstallMultipleProtocolInterfaces (
971 &DriverBinding->DriverBindingHandle,
972 &gEfiDriverBindingProtocolGuid,
973 DriverBinding,
974 &gEfiComponentNameProtocolGuid,
975 ComponentName,
976 &gEfiComponentName2ProtocolGuid,
977 ComponentName2,
978 &gEfiDriverConfigurationProtocolGuid,
979 DriverConfiguration,
980 &gEfiDriverDiagnosticsProtocolGuid,
981 DriverDiagnostics,
982 NULL
983 );
984 }
985 }
986 } else {
987 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
988 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
989 Status = gBS->InstallMultipleProtocolInterfaces (
990 &DriverBinding->DriverBindingHandle,
991 &gEfiDriverBindingProtocolGuid,
992 DriverBinding,
993 &gEfiDriverConfigurationProtocolGuid,
994 DriverConfiguration,
995 &gEfiDriverDiagnosticsProtocolGuid,
996 DriverDiagnostics,
997 &gEfiDriverDiagnostics2ProtocolGuid,
998 DriverDiagnostics2,
999 NULL
1000 );
1001 } else {
1002 Status = gBS->InstallMultipleProtocolInterfaces (
1003 &DriverBinding->DriverBindingHandle,
1004 &gEfiDriverBindingProtocolGuid,
1005 DriverBinding,
1006 &gEfiComponentName2ProtocolGuid,
1007 ComponentName2,
1008 &gEfiDriverConfigurationProtocolGuid,
1009 DriverConfiguration,
1010 &gEfiDriverDiagnosticsProtocolGuid,
1011 DriverDiagnostics,
1012 &gEfiDriverDiagnostics2ProtocolGuid,
1013 DriverDiagnostics2,
1014 NULL
1015 );
1016 }
1017 } else {
1018 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1019 Status = gBS->InstallMultipleProtocolInterfaces (
1020 &DriverBinding->DriverBindingHandle,
1021 &gEfiDriverBindingProtocolGuid,
1022 DriverBinding,
1023 &gEfiComponentNameProtocolGuid,
1024 ComponentName,
1025 &gEfiDriverConfigurationProtocolGuid,
1026 DriverConfiguration,
1027 &gEfiDriverDiagnosticsProtocolGuid,
1028 DriverDiagnostics,
1029 &gEfiDriverDiagnostics2ProtocolGuid,
1030 DriverDiagnostics2,
1031 NULL
1032 );
1033 } else {
1034 Status = gBS->InstallMultipleProtocolInterfaces (
1035 &DriverBinding->DriverBindingHandle,
1036 &gEfiDriverBindingProtocolGuid,
1037 DriverBinding,
1038 &gEfiComponentNameProtocolGuid,
1039 ComponentName,
1040 &gEfiComponentName2ProtocolGuid,
1041 ComponentName2,
1042 &gEfiDriverConfigurationProtocolGuid,
1043 DriverConfiguration,
1044 &gEfiDriverDiagnosticsProtocolGuid,
1045 DriverDiagnostics,
1046 &gEfiDriverDiagnostics2ProtocolGuid,
1047 DriverDiagnostics2,
1048 NULL
1049 );
1050 }
1051 }
1052 }
1053 }
1054 }
1055 } else {
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,
1064 DriverBinding,
1065 &gEfiDriverConfiguration2ProtocolGuid,
1066 DriverConfiguration2,
1067 NULL
1068 );
1069 } else {
1070 Status = gBS->InstallMultipleProtocolInterfaces (
1071 &DriverBinding->DriverBindingHandle,
1072 &gEfiDriverBindingProtocolGuid,
1073 DriverBinding,
1074 &gEfiComponentName2ProtocolGuid,
1075 ComponentName2,
1076 &gEfiDriverConfiguration2ProtocolGuid,
1077 DriverConfiguration2,
1078 NULL
1079 );
1080 }
1081 } else {
1082 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1083 Status = gBS->InstallMultipleProtocolInterfaces (
1084 &DriverBinding->DriverBindingHandle,
1085 &gEfiDriverBindingProtocolGuid,
1086 DriverBinding,
1087 &gEfiComponentNameProtocolGuid,
1088 ComponentName,
1089 &gEfiDriverConfiguration2ProtocolGuid,
1090 DriverConfiguration2,
1091 NULL
1092 );
1093 } else {
1094 Status = gBS->InstallMultipleProtocolInterfaces (
1095 &DriverBinding->DriverBindingHandle,
1096 &gEfiDriverBindingProtocolGuid,
1097 DriverBinding,
1098 &gEfiComponentNameProtocolGuid,
1099 ComponentName,
1100 &gEfiComponentName2ProtocolGuid,
1101 ComponentName2,
1102 &gEfiDriverConfiguration2ProtocolGuid,
1103 DriverConfiguration2,
1104 NULL
1105 );
1106 }
1107 }
1108 } else {
1109 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
1110 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1111 Status = gBS->InstallMultipleProtocolInterfaces (
1112 &DriverBinding->DriverBindingHandle,
1113 &gEfiDriverBindingProtocolGuid,
1114 DriverBinding,
1115 &gEfiDriverDiagnostics2ProtocolGuid,
1116 DriverDiagnostics2,
1117 &gEfiDriverConfiguration2ProtocolGuid,
1118 DriverConfiguration2,
1119 NULL
1120 );
1121 } else {
1122 Status = gBS->InstallMultipleProtocolInterfaces (
1123 &DriverBinding->DriverBindingHandle,
1124 &gEfiDriverBindingProtocolGuid,
1125 DriverBinding,
1126 &gEfiComponentName2ProtocolGuid,
1127 ComponentName2,
1128 &gEfiDriverConfiguration2ProtocolGuid,
1129 DriverConfiguration2,
1130 &gEfiDriverDiagnostics2ProtocolGuid,
1131 DriverDiagnostics2,
1132 NULL
1133 );
1134 }
1135 } else {
1136 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1137 Status = gBS->InstallMultipleProtocolInterfaces (
1138 &DriverBinding->DriverBindingHandle,
1139 &gEfiDriverBindingProtocolGuid,
1140 DriverBinding,
1141 &gEfiComponentNameProtocolGuid,
1142 ComponentName,
1143 &gEfiDriverConfiguration2ProtocolGuid,
1144 DriverConfiguration2,
1145 &gEfiDriverDiagnostics2ProtocolGuid,
1146 DriverDiagnostics2,
1147 NULL
1148 );
1149 } else {
1150 Status = gBS->InstallMultipleProtocolInterfaces (
1151 &DriverBinding->DriverBindingHandle,
1152 &gEfiDriverBindingProtocolGuid,
1153 DriverBinding,
1154 &gEfiComponentNameProtocolGuid,
1155 ComponentName,
1156 &gEfiComponentName2ProtocolGuid,
1157 ComponentName2,
1158 &gEfiDriverConfiguration2ProtocolGuid,
1159 DriverConfiguration2,
1160 &gEfiDriverDiagnostics2ProtocolGuid,
1161 DriverDiagnostics2,
1162 NULL
1163 );
1164 }
1165 }
1166 }
1167 } else {
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,
1174 DriverBinding,
1175 &gEfiDriverDiagnosticsProtocolGuid,
1176 DriverDiagnostics,
1177 &gEfiDriverConfiguration2ProtocolGuid,
1178 DriverConfiguration2,
1179 NULL
1180 );
1181 } else {
1182 Status = gBS->InstallMultipleProtocolInterfaces (
1183 &DriverBinding->DriverBindingHandle,
1184 &gEfiDriverBindingProtocolGuid,
1185 DriverBinding,
1186 &gEfiComponentName2ProtocolGuid,
1187 ComponentName2,
1188 &gEfiDriverConfiguration2ProtocolGuid,
1189 DriverConfiguration2,
1190 &gEfiDriverDiagnosticsProtocolGuid,
1191 DriverDiagnostics,
1192 NULL
1193 );
1194 }
1195 } else {
1196 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1197 Status = gBS->InstallMultipleProtocolInterfaces (
1198 &DriverBinding->DriverBindingHandle,
1199 &gEfiDriverBindingProtocolGuid,
1200 DriverBinding,
1201 &gEfiComponentNameProtocolGuid,
1202 ComponentName,
1203 &gEfiDriverDiagnosticsProtocolGuid,
1204 DriverDiagnostics,
1205 &gEfiDriverConfiguration2ProtocolGuid,
1206 DriverConfiguration2,
1207 NULL
1208 );
1209 } else {
1210 Status = gBS->InstallMultipleProtocolInterfaces (
1211 &DriverBinding->DriverBindingHandle,
1212 &gEfiDriverBindingProtocolGuid,
1213 DriverBinding,
1214 &gEfiComponentNameProtocolGuid,
1215 ComponentName,
1216 &gEfiComponentName2ProtocolGuid,
1217 ComponentName2,
1218 &gEfiDriverConfiguration2ProtocolGuid,
1219 DriverConfiguration2,
1220 &gEfiDriverDiagnosticsProtocolGuid,
1221 DriverDiagnostics,
1222 NULL
1223 );
1224 }
1225 }
1226 } else {
1227 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
1228 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1229 Status = gBS->InstallMultipleProtocolInterfaces (
1230 &DriverBinding->DriverBindingHandle,
1231 &gEfiDriverBindingProtocolGuid,
1232 DriverBinding,
1233 &gEfiDriverConfiguration2ProtocolGuid,
1234 DriverConfiguration2,
1235 &gEfiDriverDiagnosticsProtocolGuid,
1236 DriverDiagnostics,
1237 &gEfiDriverDiagnostics2ProtocolGuid,
1238 DriverDiagnostics2,
1239 NULL
1240 );
1241 } else {
1242 Status = gBS->InstallMultipleProtocolInterfaces (
1243 &DriverBinding->DriverBindingHandle,
1244 &gEfiDriverBindingProtocolGuid,
1245 DriverBinding,
1246 &gEfiComponentName2ProtocolGuid,
1247 ComponentName2,
1248 &gEfiDriverConfiguration2ProtocolGuid,
1249 DriverConfiguration2,
1250 &gEfiDriverDiagnosticsProtocolGuid,
1251 DriverDiagnostics,
1252 &gEfiDriverDiagnostics2ProtocolGuid,
1253 DriverDiagnostics2,
1254 NULL
1255 );
1256 }
1257 } else {
1258 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1259 Status = gBS->InstallMultipleProtocolInterfaces (
1260 &DriverBinding->DriverBindingHandle,
1261 &gEfiDriverBindingProtocolGuid,
1262 DriverBinding,
1263 &gEfiComponentNameProtocolGuid,
1264 ComponentName,
1265 &gEfiDriverConfiguration2ProtocolGuid,
1266 DriverConfiguration2,
1267 &gEfiDriverDiagnosticsProtocolGuid,
1268 DriverDiagnostics,
1269 &gEfiDriverDiagnostics2ProtocolGuid,
1270 DriverDiagnostics2,
1271 NULL
1272 );
1273 } else {
1274 Status = gBS->InstallMultipleProtocolInterfaces (
1275 &DriverBinding->DriverBindingHandle,
1276 &gEfiDriverBindingProtocolGuid,
1277 DriverBinding,
1278 &gEfiComponentNameProtocolGuid,
1279 ComponentName,
1280 &gEfiComponentName2ProtocolGuid,
1281 ComponentName2,
1282 &gEfiDriverConfiguration2ProtocolGuid,
1283 DriverConfiguration2,
1284 &gEfiDriverDiagnosticsProtocolGuid,
1285 DriverDiagnostics,
1286 &gEfiDriverDiagnostics2ProtocolGuid,
1287 DriverDiagnostics2,
1288 NULL
1289 );
1290 }
1291 }
1292 }
1293 }
1294 } else {
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,
1302 DriverBinding,
1303 &gEfiDriverConfigurationProtocolGuid,
1304 DriverConfiguration,
1305 &gEfiDriverConfiguration2ProtocolGuid,
1306 DriverConfiguration2,
1307 NULL
1308 );
1309 } else {
1310 Status = gBS->InstallMultipleProtocolInterfaces (
1311 &DriverBinding->DriverBindingHandle,
1312 &gEfiDriverBindingProtocolGuid,
1313 DriverBinding,
1314 &gEfiComponentName2ProtocolGuid,
1315 ComponentName2,
1316 &gEfiDriverConfigurationProtocolGuid,
1317 DriverConfiguration,
1318 &gEfiDriverConfiguration2ProtocolGuid,
1319 DriverConfiguration2,
1320 NULL
1321 );
1322 }
1323 } else {
1324 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1325 Status = gBS->InstallMultipleProtocolInterfaces (
1326 &DriverBinding->DriverBindingHandle,
1327 &gEfiDriverBindingProtocolGuid,
1328 DriverBinding,
1329 &gEfiComponentNameProtocolGuid,
1330 ComponentName,
1331 &gEfiDriverConfigurationProtocolGuid,
1332 DriverConfiguration,
1333 &gEfiDriverConfiguration2ProtocolGuid,
1334 DriverConfiguration2,
1335 NULL
1336 );
1337 } else {
1338 Status = gBS->InstallMultipleProtocolInterfaces (
1339 &DriverBinding->DriverBindingHandle,
1340 &gEfiDriverBindingProtocolGuid,
1341 DriverBinding,
1342 &gEfiComponentNameProtocolGuid,
1343 ComponentName,
1344 &gEfiComponentName2ProtocolGuid,
1345 ComponentName2,
1346 &gEfiDriverConfigurationProtocolGuid,
1347 DriverConfiguration,
1348 &gEfiDriverConfiguration2ProtocolGuid,
1349 DriverConfiguration2,
1350 NULL
1351 );
1352 }
1353 }
1354 } else {
1355 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
1356 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1357 Status = gBS->InstallMultipleProtocolInterfaces (
1358 &DriverBinding->DriverBindingHandle,
1359 &gEfiDriverBindingProtocolGuid,
1360 DriverBinding,
1361 &gEfiDriverConfigurationProtocolGuid,
1362 DriverConfiguration,
1363 &gEfiDriverConfiguration2ProtocolGuid,
1364 DriverConfiguration2,
1365 &gEfiDriverDiagnostics2ProtocolGuid,
1366 DriverDiagnostics2,
1367 NULL
1368 );
1369 } else {
1370 Status = gBS->InstallMultipleProtocolInterfaces (
1371 &DriverBinding->DriverBindingHandle,
1372 &gEfiDriverBindingProtocolGuid,
1373 DriverBinding,
1374 &gEfiComponentName2ProtocolGuid,
1375 ComponentName2,
1376 &gEfiDriverConfigurationProtocolGuid,
1377 DriverConfiguration,
1378 &gEfiDriverConfiguration2ProtocolGuid,
1379 DriverConfiguration2,
1380 &gEfiDriverDiagnostics2ProtocolGuid,
1381 DriverDiagnostics2,
1382 NULL
1383 );
1384 }
1385 } else {
1386 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1387 Status = gBS->InstallMultipleProtocolInterfaces (
1388 &DriverBinding->DriverBindingHandle,
1389 &gEfiDriverBindingProtocolGuid,
1390 DriverBinding,
1391 &gEfiComponentNameProtocolGuid,
1392 ComponentName,
1393 &gEfiDriverConfigurationProtocolGuid,
1394 DriverConfiguration,
1395 &gEfiDriverConfiguration2ProtocolGuid,
1396 DriverConfiguration2,
1397 &gEfiDriverDiagnostics2ProtocolGuid,
1398 DriverDiagnostics2,
1399 NULL
1400 );
1401 } else {
1402 Status = gBS->InstallMultipleProtocolInterfaces (
1403 &DriverBinding->DriverBindingHandle,
1404 &gEfiDriverBindingProtocolGuid,
1405 DriverBinding,
1406 &gEfiComponentNameProtocolGuid,
1407 ComponentName,
1408 &gEfiComponentName2ProtocolGuid,
1409 ComponentName2,
1410 &gEfiDriverConfigurationProtocolGuid,
1411 DriverConfiguration,
1412 &gEfiDriverConfiguration2ProtocolGuid,
1413 DriverConfiguration2,
1414 &gEfiDriverDiagnostics2ProtocolGuid,
1415 DriverDiagnostics2,
1416 NULL
1417 );
1418 }
1419 }
1420 }
1421 } else {
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,
1428 DriverBinding,
1429 &gEfiDriverConfigurationProtocolGuid,
1430 DriverConfiguration,
1431 &gEfiDriverConfiguration2ProtocolGuid,
1432 DriverConfiguration2,
1433 &gEfiDriverDiagnosticsProtocolGuid,
1434 DriverDiagnostics,
1435 NULL
1436 );
1437 } else {
1438 Status = gBS->InstallMultipleProtocolInterfaces (
1439 &DriverBinding->DriverBindingHandle,
1440 &gEfiDriverBindingProtocolGuid,
1441 DriverBinding,
1442 &gEfiComponentName2ProtocolGuid,
1443 ComponentName2,
1444 &gEfiDriverConfigurationProtocolGuid,
1445 DriverConfiguration,
1446 &gEfiDriverConfiguration2ProtocolGuid,
1447 DriverConfiguration2,
1448 &gEfiDriverDiagnosticsProtocolGuid,
1449 DriverDiagnostics,
1450 NULL
1451 );
1452 }
1453 } else {
1454 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1455 Status = gBS->InstallMultipleProtocolInterfaces (
1456 &DriverBinding->DriverBindingHandle,
1457 &gEfiDriverBindingProtocolGuid,
1458 DriverBinding,
1459 &gEfiComponentNameProtocolGuid,
1460 ComponentName,
1461 &gEfiDriverConfigurationProtocolGuid,
1462 DriverConfiguration,
1463 &gEfiDriverConfiguration2ProtocolGuid,
1464 DriverConfiguration2,
1465 &gEfiDriverDiagnosticsProtocolGuid,
1466 DriverDiagnostics,
1467 NULL
1468 );
1469 } else {
1470 Status = gBS->InstallMultipleProtocolInterfaces (
1471 &DriverBinding->DriverBindingHandle,
1472 &gEfiDriverBindingProtocolGuid,
1473 DriverBinding,
1474 &gEfiComponentNameProtocolGuid,
1475 ComponentName,
1476 &gEfiComponentName2ProtocolGuid,
1477 ComponentName2,
1478 &gEfiDriverConfigurationProtocolGuid,
1479 DriverConfiguration,
1480 &gEfiDriverConfiguration2ProtocolGuid,
1481 DriverConfiguration2,
1482 &gEfiDriverDiagnosticsProtocolGuid,
1483 DriverDiagnostics,
1484 NULL
1485 );
1486 }
1487 }
1488 } else {
1489 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
1490 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1491 Status = gBS->InstallMultipleProtocolInterfaces (
1492 &DriverBinding->DriverBindingHandle,
1493 &gEfiDriverBindingProtocolGuid,
1494 DriverBinding,
1495 &gEfiDriverConfigurationProtocolGuid,
1496 DriverConfiguration,
1497 &gEfiDriverConfiguration2ProtocolGuid,
1498 DriverConfiguration2,
1499 &gEfiDriverDiagnosticsProtocolGuid,
1500 DriverDiagnostics,
1501 &gEfiDriverDiagnostics2ProtocolGuid,
1502 DriverDiagnostics2,
1503 NULL
1504 );
1505 } else {
1506 Status = gBS->InstallMultipleProtocolInterfaces (
1507 &DriverBinding->DriverBindingHandle,
1508 &gEfiDriverBindingProtocolGuid,
1509 DriverBinding,
1510 &gEfiComponentName2ProtocolGuid,
1511 ComponentName2,
1512 &gEfiDriverConfigurationProtocolGuid,
1513 DriverConfiguration,
1514 &gEfiDriverConfiguration2ProtocolGuid,
1515 DriverConfiguration2,
1516 &gEfiDriverDiagnosticsProtocolGuid,
1517 DriverDiagnostics,
1518 &gEfiDriverDiagnostics2ProtocolGuid,
1519 DriverDiagnostics2,
1520 NULL
1521 );
1522 }
1523 } else {
1524 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1525 Status = gBS->InstallMultipleProtocolInterfaces (
1526 &DriverBinding->DriverBindingHandle,
1527 &gEfiDriverBindingProtocolGuid,
1528 DriverBinding,
1529 &gEfiComponentNameProtocolGuid,
1530 ComponentName,
1531 &gEfiDriverConfigurationProtocolGuid,
1532 DriverConfiguration,
1533 &gEfiDriverConfiguration2ProtocolGuid,
1534 DriverConfiguration2,
1535 &gEfiDriverDiagnosticsProtocolGuid,
1536 DriverDiagnostics,
1537 &gEfiDriverDiagnostics2ProtocolGuid,
1538 DriverDiagnostics2,
1539 NULL
1540 );
1541 } else {
1542 Status = gBS->InstallMultipleProtocolInterfaces (
1543 &DriverBinding->DriverBindingHandle,
1544 &gEfiDriverBindingProtocolGuid,
1545 DriverBinding,
1546 &gEfiComponentNameProtocolGuid,
1547 ComponentName,
1548 &gEfiComponentName2ProtocolGuid,
1549 ComponentName2,
1550 &gEfiDriverConfigurationProtocolGuid,
1551 DriverConfiguration,
1552 &gEfiDriverConfiguration2ProtocolGuid,
1553 DriverConfiguration2,
1554 &gEfiDriverDiagnosticsProtocolGuid,
1555 DriverDiagnostics,
1556 &gEfiDriverDiagnostics2ProtocolGuid,
1557 DriverDiagnostics2,
1558 NULL
1559 );
1560 }
1561 }
1562 }
1563 }
1564 }
1565 }
1566
1567 //
1568 // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
1569 //
1570 ASSERT_EFI_ERROR (Status);
1571
1572 return Status;
1573}
1574
1596EFIAPI
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
1605 )
1606{
1607 EFI_STATUS Status;
1608
1609 ASSERT (DriverBinding != NULL);
1610
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,
1620 DriverBinding,
1621 NULL
1622 );
1623 } else {
1624 Status = gBS->UninstallMultipleProtocolInterfaces (
1625 DriverBinding->DriverBindingHandle,
1626 &gEfiDriverBindingProtocolGuid,
1627 DriverBinding,
1628 &gEfiComponentName2ProtocolGuid,
1629 ComponentName2,
1630 NULL
1631 );
1632 }
1633 } else {
1634 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1635 Status = gBS->UninstallMultipleProtocolInterfaces (
1636 DriverBinding->DriverBindingHandle,
1637 &gEfiDriverBindingProtocolGuid,
1638 DriverBinding,
1639 &gEfiComponentNameProtocolGuid,
1640 ComponentName,
1641 NULL
1642 );
1643 } else {
1644 Status = gBS->UninstallMultipleProtocolInterfaces (
1645 DriverBinding->DriverBindingHandle,
1646 &gEfiDriverBindingProtocolGuid,
1647 DriverBinding,
1648 &gEfiComponentNameProtocolGuid,
1649 ComponentName,
1650 &gEfiComponentName2ProtocolGuid,
1651 ComponentName2,
1652 NULL
1653 );
1654 }
1655 }
1656 } else {
1657 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
1658 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1659 Status = gBS->UninstallMultipleProtocolInterfaces (
1660 DriverBinding->DriverBindingHandle,
1661 &gEfiDriverBindingProtocolGuid,
1662 DriverBinding,
1663 &gEfiDriverDiagnostics2ProtocolGuid,
1664 DriverDiagnostics2,
1665 NULL
1666 );
1667 } else {
1668 Status = gBS->UninstallMultipleProtocolInterfaces (
1669 DriverBinding->DriverBindingHandle,
1670 &gEfiDriverBindingProtocolGuid,
1671 DriverBinding,
1672 &gEfiComponentName2ProtocolGuid,
1673 ComponentName2,
1674 &gEfiDriverDiagnostics2ProtocolGuid,
1675 DriverDiagnostics2,
1676 NULL
1677 );
1678 }
1679 } else {
1680 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1681 Status = gBS->UninstallMultipleProtocolInterfaces (
1682 DriverBinding->DriverBindingHandle,
1683 &gEfiDriverBindingProtocolGuid,
1684 DriverBinding,
1685 &gEfiComponentNameProtocolGuid,
1686 ComponentName,
1687 &gEfiDriverDiagnostics2ProtocolGuid,
1688 DriverDiagnostics2,
1689 NULL
1690 );
1691 } else {
1692 Status = gBS->UninstallMultipleProtocolInterfaces (
1693 DriverBinding->DriverBindingHandle,
1694 &gEfiDriverBindingProtocolGuid,
1695 DriverBinding,
1696 &gEfiComponentNameProtocolGuid,
1697 ComponentName,
1698 &gEfiComponentName2ProtocolGuid,
1699 ComponentName2,
1700 &gEfiDriverDiagnostics2ProtocolGuid,
1701 DriverDiagnostics2,
1702 NULL
1703 );
1704 }
1705 }
1706 }
1707 } else {
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,
1714 DriverBinding,
1715 &gEfiDriverDiagnosticsProtocolGuid,
1716 DriverDiagnostics,
1717 NULL
1718 );
1719 } else {
1720 Status = gBS->UninstallMultipleProtocolInterfaces (
1721 DriverBinding->DriverBindingHandle,
1722 &gEfiDriverBindingProtocolGuid,
1723 DriverBinding,
1724 &gEfiComponentName2ProtocolGuid,
1725 ComponentName2,
1726 &gEfiDriverDiagnosticsProtocolGuid,
1727 DriverDiagnostics,
1728 NULL
1729 );
1730 }
1731 } else {
1732 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1733 Status = gBS->UninstallMultipleProtocolInterfaces (
1734 DriverBinding->DriverBindingHandle,
1735 &gEfiDriverBindingProtocolGuid,
1736 DriverBinding,
1737 &gEfiComponentNameProtocolGuid,
1738 ComponentName,
1739 &gEfiDriverDiagnosticsProtocolGuid,
1740 DriverDiagnostics,
1741 NULL
1742 );
1743 } else {
1744 Status = gBS->UninstallMultipleProtocolInterfaces (
1745 DriverBinding->DriverBindingHandle,
1746 &gEfiDriverBindingProtocolGuid,
1747 DriverBinding,
1748 &gEfiComponentNameProtocolGuid,
1749 ComponentName,
1750 &gEfiComponentName2ProtocolGuid,
1751 ComponentName2,
1752 &gEfiDriverDiagnosticsProtocolGuid,
1753 DriverDiagnostics,
1754 NULL
1755 );
1756 }
1757 }
1758 } else {
1759 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
1760 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1761 Status = gBS->UninstallMultipleProtocolInterfaces (
1762 DriverBinding->DriverBindingHandle,
1763 &gEfiDriverBindingProtocolGuid,
1764 DriverBinding,
1765 &gEfiDriverDiagnosticsProtocolGuid,
1766 DriverDiagnostics,
1767 &gEfiDriverDiagnostics2ProtocolGuid,
1768 DriverDiagnostics2,
1769 NULL
1770 );
1771 } else {
1772 Status = gBS->UninstallMultipleProtocolInterfaces (
1773 DriverBinding->DriverBindingHandle,
1774 &gEfiDriverBindingProtocolGuid,
1775 DriverBinding,
1776 &gEfiComponentName2ProtocolGuid,
1777 ComponentName2,
1778 &gEfiDriverDiagnosticsProtocolGuid,
1779 DriverDiagnostics,
1780 &gEfiDriverDiagnostics2ProtocolGuid,
1781 DriverDiagnostics2,
1782 NULL
1783 );
1784 }
1785 } else {
1786 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1787 Status = gBS->UninstallMultipleProtocolInterfaces (
1788 DriverBinding->DriverBindingHandle,
1789 &gEfiDriverBindingProtocolGuid,
1790 DriverBinding,
1791 &gEfiComponentNameProtocolGuid,
1792 ComponentName,
1793 &gEfiDriverDiagnosticsProtocolGuid,
1794 DriverDiagnostics,
1795 &gEfiDriverDiagnostics2ProtocolGuid,
1796 DriverDiagnostics2,
1797 NULL
1798 );
1799 } else {
1800 Status = gBS->UninstallMultipleProtocolInterfaces (
1801 DriverBinding->DriverBindingHandle,
1802 &gEfiDriverBindingProtocolGuid,
1803 DriverBinding,
1804 &gEfiComponentNameProtocolGuid,
1805 ComponentName,
1806 &gEfiComponentName2ProtocolGuid,
1807 ComponentName2,
1808 &gEfiDriverDiagnosticsProtocolGuid,
1809 DriverDiagnostics,
1810 &gEfiDriverDiagnostics2ProtocolGuid,
1811 DriverDiagnostics2,
1812 NULL
1813 );
1814 }
1815 }
1816 }
1817 }
1818 } else {
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,
1826 DriverBinding,
1827 &gEfiDriverConfigurationProtocolGuid,
1828 DriverConfiguration,
1829 NULL
1830 );
1831 } else {
1832 Status = gBS->UninstallMultipleProtocolInterfaces (
1833 DriverBinding->DriverBindingHandle,
1834 &gEfiDriverBindingProtocolGuid,
1835 DriverBinding,
1836 &gEfiComponentName2ProtocolGuid,
1837 ComponentName2,
1838 &gEfiDriverConfigurationProtocolGuid,
1839 DriverConfiguration,
1840 NULL
1841 );
1842 }
1843 } else {
1844 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1845 Status = gBS->UninstallMultipleProtocolInterfaces (
1846 DriverBinding->DriverBindingHandle,
1847 &gEfiDriverBindingProtocolGuid,
1848 DriverBinding,
1849 &gEfiComponentNameProtocolGuid,
1850 ComponentName,
1851 &gEfiDriverConfigurationProtocolGuid,
1852 DriverConfiguration,
1853 NULL
1854 );
1855 } else {
1856 Status = gBS->UninstallMultipleProtocolInterfaces (
1857 DriverBinding->DriverBindingHandle,
1858 &gEfiDriverBindingProtocolGuid,
1859 DriverBinding,
1860 &gEfiComponentNameProtocolGuid,
1861 ComponentName,
1862 &gEfiComponentName2ProtocolGuid,
1863 ComponentName2,
1864 &gEfiDriverConfigurationProtocolGuid,
1865 DriverConfiguration,
1866 NULL
1867 );
1868 }
1869 }
1870 } else {
1871 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
1872 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1873 Status = gBS->UninstallMultipleProtocolInterfaces (
1874 DriverBinding->DriverBindingHandle,
1875 &gEfiDriverBindingProtocolGuid,
1876 DriverBinding,
1877 &gEfiDriverConfigurationProtocolGuid,
1878 DriverConfiguration,
1879 &gEfiDriverDiagnostics2ProtocolGuid,
1880 DriverDiagnostics2,
1881 NULL
1882 );
1883 } else {
1884 Status = gBS->UninstallMultipleProtocolInterfaces (
1885 DriverBinding->DriverBindingHandle,
1886 &gEfiDriverBindingProtocolGuid,
1887 DriverBinding,
1888 &gEfiComponentName2ProtocolGuid,
1889 ComponentName2,
1890 &gEfiDriverConfigurationProtocolGuid,
1891 DriverConfiguration,
1892 &gEfiDriverDiagnostics2ProtocolGuid,
1893 DriverDiagnostics2,
1894 NULL
1895 );
1896 }
1897 } else {
1898 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1899 Status = gBS->UninstallMultipleProtocolInterfaces (
1900 DriverBinding->DriverBindingHandle,
1901 &gEfiDriverBindingProtocolGuid,
1902 DriverBinding,
1903 &gEfiComponentNameProtocolGuid,
1904 ComponentName,
1905 &gEfiDriverConfigurationProtocolGuid,
1906 DriverConfiguration,
1907 &gEfiDriverDiagnostics2ProtocolGuid,
1908 DriverDiagnostics2,
1909 NULL
1910 );
1911 } else {
1912 Status = gBS->UninstallMultipleProtocolInterfaces (
1913 DriverBinding->DriverBindingHandle,
1914 &gEfiDriverBindingProtocolGuid,
1915 DriverBinding,
1916 &gEfiComponentNameProtocolGuid,
1917 ComponentName,
1918 &gEfiComponentName2ProtocolGuid,
1919 ComponentName2,
1920 &gEfiDriverConfigurationProtocolGuid,
1921 DriverConfiguration,
1922 &gEfiDriverDiagnostics2ProtocolGuid,
1923 DriverDiagnostics2,
1924 NULL
1925 );
1926 }
1927 }
1928 }
1929 } else {
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,
1936 DriverBinding,
1937 &gEfiDriverConfigurationProtocolGuid,
1938 DriverConfiguration,
1939 &gEfiDriverDiagnosticsProtocolGuid,
1940 DriverDiagnostics,
1941 NULL
1942 );
1943 } else {
1944 Status = gBS->UninstallMultipleProtocolInterfaces (
1945 DriverBinding->DriverBindingHandle,
1946 &gEfiDriverBindingProtocolGuid,
1947 DriverBinding,
1948 &gEfiComponentName2ProtocolGuid,
1949 ComponentName2,
1950 &gEfiDriverConfigurationProtocolGuid,
1951 DriverConfiguration,
1952 &gEfiDriverDiagnosticsProtocolGuid,
1953 DriverDiagnostics,
1954 NULL
1955 );
1956 }
1957 } else {
1958 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1959 Status = gBS->UninstallMultipleProtocolInterfaces (
1960 DriverBinding->DriverBindingHandle,
1961 &gEfiDriverBindingProtocolGuid,
1962 DriverBinding,
1963 &gEfiComponentNameProtocolGuid,
1964 ComponentName,
1965 &gEfiDriverConfigurationProtocolGuid,
1966 DriverConfiguration,
1967 &gEfiDriverDiagnosticsProtocolGuid,
1968 DriverDiagnostics,
1969 NULL
1970 );
1971 } else {
1972 Status = gBS->UninstallMultipleProtocolInterfaces (
1973 DriverBinding->DriverBindingHandle,
1974 &gEfiDriverBindingProtocolGuid,
1975 DriverBinding,
1976 &gEfiComponentNameProtocolGuid,
1977 ComponentName,
1978 &gEfiComponentName2ProtocolGuid,
1979 ComponentName2,
1980 &gEfiDriverConfigurationProtocolGuid,
1981 DriverConfiguration,
1982 &gEfiDriverDiagnosticsProtocolGuid,
1983 DriverDiagnostics,
1984 NULL
1985 );
1986 }
1987 }
1988 } else {
1989 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
1990 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
1991 Status = gBS->UninstallMultipleProtocolInterfaces (
1992 DriverBinding->DriverBindingHandle,
1993 &gEfiDriverBindingProtocolGuid,
1994 DriverBinding,
1995 &gEfiDriverConfigurationProtocolGuid,
1996 DriverConfiguration,
1997 &gEfiDriverDiagnosticsProtocolGuid,
1998 DriverDiagnostics,
1999 &gEfiDriverDiagnostics2ProtocolGuid,
2000 DriverDiagnostics2,
2001 NULL
2002 );
2003 } else {
2004 Status = gBS->UninstallMultipleProtocolInterfaces (
2005 DriverBinding->DriverBindingHandle,
2006 &gEfiDriverBindingProtocolGuid,
2007 DriverBinding,
2008 &gEfiComponentName2ProtocolGuid,
2009 ComponentName2,
2010 &gEfiDriverConfigurationProtocolGuid,
2011 DriverConfiguration,
2012 &gEfiDriverDiagnosticsProtocolGuid,
2013 DriverDiagnostics,
2014 &gEfiDriverDiagnostics2ProtocolGuid,
2015 DriverDiagnostics2,
2016 NULL
2017 );
2018 }
2019 } else {
2020 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2021 Status = gBS->UninstallMultipleProtocolInterfaces (
2022 DriverBinding->DriverBindingHandle,
2023 &gEfiDriverBindingProtocolGuid,
2024 DriverBinding,
2025 &gEfiComponentNameProtocolGuid,
2026 ComponentName,
2027 &gEfiDriverConfigurationProtocolGuid,
2028 DriverConfiguration,
2029 &gEfiDriverDiagnosticsProtocolGuid,
2030 DriverDiagnostics,
2031 &gEfiDriverDiagnostics2ProtocolGuid,
2032 DriverDiagnostics2,
2033 NULL
2034 );
2035 } else {
2036 Status = gBS->UninstallMultipleProtocolInterfaces (
2037 DriverBinding->DriverBindingHandle,
2038 &gEfiDriverBindingProtocolGuid,
2039 DriverBinding,
2040 &gEfiComponentNameProtocolGuid,
2041 ComponentName,
2042 &gEfiComponentName2ProtocolGuid,
2043 ComponentName2,
2044 &gEfiDriverConfigurationProtocolGuid,
2045 DriverConfiguration,
2046 &gEfiDriverDiagnosticsProtocolGuid,
2047 DriverDiagnostics,
2048 &gEfiDriverDiagnostics2ProtocolGuid,
2049 DriverDiagnostics2,
2050 NULL
2051 );
2052 }
2053 }
2054 }
2055 }
2056 }
2057 } else {
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,
2066 DriverBinding,
2067 &gEfiDriverConfiguration2ProtocolGuid,
2068 DriverConfiguration2,
2069 NULL
2070 );
2071 } else {
2072 Status = gBS->UninstallMultipleProtocolInterfaces (
2073 DriverBinding->DriverBindingHandle,
2074 &gEfiDriverBindingProtocolGuid,
2075 DriverBinding,
2076 &gEfiComponentName2ProtocolGuid,
2077 ComponentName2,
2078 &gEfiDriverConfiguration2ProtocolGuid,
2079 DriverConfiguration2,
2080 NULL
2081 );
2082 }
2083 } else {
2084 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2085 Status = gBS->UninstallMultipleProtocolInterfaces (
2086 DriverBinding->DriverBindingHandle,
2087 &gEfiDriverBindingProtocolGuid,
2088 DriverBinding,
2089 &gEfiComponentNameProtocolGuid,
2090 ComponentName,
2091 &gEfiDriverConfiguration2ProtocolGuid,
2092 DriverConfiguration2,
2093 NULL
2094 );
2095 } else {
2096 Status = gBS->UninstallMultipleProtocolInterfaces (
2097 DriverBinding->DriverBindingHandle,
2098 &gEfiDriverBindingProtocolGuid,
2099 DriverBinding,
2100 &gEfiComponentNameProtocolGuid,
2101 ComponentName,
2102 &gEfiComponentName2ProtocolGuid,
2103 ComponentName2,
2104 &gEfiDriverConfiguration2ProtocolGuid,
2105 DriverConfiguration2,
2106 NULL
2107 );
2108 }
2109 }
2110 } else {
2111 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
2112 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2113 Status = gBS->UninstallMultipleProtocolInterfaces (
2114 DriverBinding->DriverBindingHandle,
2115 &gEfiDriverBindingProtocolGuid,
2116 DriverBinding,
2117 &gEfiDriverDiagnostics2ProtocolGuid,
2118 DriverDiagnostics2,
2119 &gEfiDriverConfiguration2ProtocolGuid,
2120 DriverConfiguration2,
2121 NULL
2122 );
2123 } else {
2124 Status = gBS->UninstallMultipleProtocolInterfaces (
2125 DriverBinding->DriverBindingHandle,
2126 &gEfiDriverBindingProtocolGuid,
2127 DriverBinding,
2128 &gEfiComponentName2ProtocolGuid,
2129 ComponentName2,
2130 &gEfiDriverConfiguration2ProtocolGuid,
2131 DriverConfiguration2,
2132 &gEfiDriverDiagnostics2ProtocolGuid,
2133 DriverDiagnostics2,
2134 NULL
2135 );
2136 }
2137 } else {
2138 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2139 Status = gBS->UninstallMultipleProtocolInterfaces (
2140 DriverBinding->DriverBindingHandle,
2141 &gEfiDriverBindingProtocolGuid,
2142 DriverBinding,
2143 &gEfiComponentNameProtocolGuid,
2144 ComponentName,
2145 &gEfiDriverConfiguration2ProtocolGuid,
2146 DriverConfiguration2,
2147 &gEfiDriverDiagnostics2ProtocolGuid,
2148 DriverDiagnostics2,
2149 NULL
2150 );
2151 } else {
2152 Status = gBS->UninstallMultipleProtocolInterfaces (
2153 DriverBinding->DriverBindingHandle,
2154 &gEfiDriverBindingProtocolGuid,
2155 DriverBinding,
2156 &gEfiComponentNameProtocolGuid,
2157 ComponentName,
2158 &gEfiComponentName2ProtocolGuid,
2159 ComponentName2,
2160 &gEfiDriverConfiguration2ProtocolGuid,
2161 DriverConfiguration2,
2162 &gEfiDriverDiagnostics2ProtocolGuid,
2163 DriverDiagnostics2,
2164 NULL
2165 );
2166 }
2167 }
2168 }
2169 } else {
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,
2176 DriverBinding,
2177 &gEfiDriverDiagnosticsProtocolGuid,
2178 DriverDiagnostics,
2179 &gEfiDriverConfiguration2ProtocolGuid,
2180 DriverConfiguration2,
2181 NULL
2182 );
2183 } else {
2184 Status = gBS->UninstallMultipleProtocolInterfaces (
2185 DriverBinding->DriverBindingHandle,
2186 &gEfiDriverBindingProtocolGuid,
2187 DriverBinding,
2188 &gEfiComponentName2ProtocolGuid,
2189 ComponentName2,
2190 &gEfiDriverConfiguration2ProtocolGuid,
2191 DriverConfiguration2,
2192 &gEfiDriverDiagnosticsProtocolGuid,
2193 DriverDiagnostics,
2194 NULL
2195 );
2196 }
2197 } else {
2198 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2199 Status = gBS->UninstallMultipleProtocolInterfaces (
2200 DriverBinding->DriverBindingHandle,
2201 &gEfiDriverBindingProtocolGuid,
2202 DriverBinding,
2203 &gEfiComponentNameProtocolGuid,
2204 ComponentName,
2205 &gEfiDriverDiagnosticsProtocolGuid,
2206 DriverDiagnostics,
2207 &gEfiDriverConfiguration2ProtocolGuid,
2208 DriverConfiguration2,
2209 NULL
2210 );
2211 } else {
2212 Status = gBS->UninstallMultipleProtocolInterfaces (
2213 DriverBinding->DriverBindingHandle,
2214 &gEfiDriverBindingProtocolGuid,
2215 DriverBinding,
2216 &gEfiComponentNameProtocolGuid,
2217 ComponentName,
2218 &gEfiComponentName2ProtocolGuid,
2219 ComponentName2,
2220 &gEfiDriverConfiguration2ProtocolGuid,
2221 DriverConfiguration2,
2222 &gEfiDriverDiagnosticsProtocolGuid,
2223 DriverDiagnostics,
2224 NULL
2225 );
2226 }
2227 }
2228 } else {
2229 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
2230 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2231 Status = gBS->UninstallMultipleProtocolInterfaces (
2232 DriverBinding->DriverBindingHandle,
2233 &gEfiDriverBindingProtocolGuid,
2234 DriverBinding,
2235 &gEfiDriverConfiguration2ProtocolGuid,
2236 DriverConfiguration2,
2237 &gEfiDriverDiagnosticsProtocolGuid,
2238 DriverDiagnostics,
2239 &gEfiDriverDiagnostics2ProtocolGuid,
2240 DriverDiagnostics2,
2241 NULL
2242 );
2243 } else {
2244 Status = gBS->UninstallMultipleProtocolInterfaces (
2245 DriverBinding->DriverBindingHandle,
2246 &gEfiDriverBindingProtocolGuid,
2247 DriverBinding,
2248 &gEfiComponentName2ProtocolGuid,
2249 ComponentName2,
2250 &gEfiDriverConfiguration2ProtocolGuid,
2251 DriverConfiguration2,
2252 &gEfiDriverDiagnosticsProtocolGuid,
2253 DriverDiagnostics,
2254 &gEfiDriverDiagnostics2ProtocolGuid,
2255 DriverDiagnostics2,
2256 NULL
2257 );
2258 }
2259 } else {
2260 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2261 Status = gBS->UninstallMultipleProtocolInterfaces (
2262 DriverBinding->DriverBindingHandle,
2263 &gEfiDriverBindingProtocolGuid,
2264 DriverBinding,
2265 &gEfiComponentNameProtocolGuid,
2266 ComponentName,
2267 &gEfiDriverConfiguration2ProtocolGuid,
2268 DriverConfiguration2,
2269 &gEfiDriverDiagnosticsProtocolGuid,
2270 DriverDiagnostics,
2271 &gEfiDriverDiagnostics2ProtocolGuid,
2272 DriverDiagnostics2,
2273 NULL
2274 );
2275 } else {
2276 Status = gBS->UninstallMultipleProtocolInterfaces (
2277 DriverBinding->DriverBindingHandle,
2278 &gEfiDriverBindingProtocolGuid,
2279 DriverBinding,
2280 &gEfiComponentNameProtocolGuid,
2281 ComponentName,
2282 &gEfiComponentName2ProtocolGuid,
2283 ComponentName2,
2284 &gEfiDriverConfiguration2ProtocolGuid,
2285 DriverConfiguration2,
2286 &gEfiDriverDiagnosticsProtocolGuid,
2287 DriverDiagnostics,
2288 &gEfiDriverDiagnostics2ProtocolGuid,
2289 DriverDiagnostics2,
2290 NULL
2291 );
2292 }
2293 }
2294 }
2295 }
2296 } else {
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,
2304 DriverBinding,
2305 &gEfiDriverConfigurationProtocolGuid,
2306 DriverConfiguration,
2307 &gEfiDriverConfiguration2ProtocolGuid,
2308 DriverConfiguration2,
2309 NULL
2310 );
2311 } else {
2312 Status = gBS->UninstallMultipleProtocolInterfaces (
2313 DriverBinding->DriverBindingHandle,
2314 &gEfiDriverBindingProtocolGuid,
2315 DriverBinding,
2316 &gEfiComponentName2ProtocolGuid,
2317 ComponentName2,
2318 &gEfiDriverConfigurationProtocolGuid,
2319 DriverConfiguration,
2320 &gEfiDriverConfiguration2ProtocolGuid,
2321 DriverConfiguration2,
2322 NULL
2323 );
2324 }
2325 } else {
2326 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2327 Status = gBS->UninstallMultipleProtocolInterfaces (
2328 DriverBinding->DriverBindingHandle,
2329 &gEfiDriverBindingProtocolGuid,
2330 DriverBinding,
2331 &gEfiComponentNameProtocolGuid,
2332 ComponentName,
2333 &gEfiDriverConfigurationProtocolGuid,
2334 DriverConfiguration,
2335 &gEfiDriverConfiguration2ProtocolGuid,
2336 DriverConfiguration2,
2337 NULL
2338 );
2339 } else {
2340 Status = gBS->UninstallMultipleProtocolInterfaces (
2341 DriverBinding->DriverBindingHandle,
2342 &gEfiDriverBindingProtocolGuid,
2343 DriverBinding,
2344 &gEfiComponentNameProtocolGuid,
2345 ComponentName,
2346 &gEfiComponentName2ProtocolGuid,
2347 ComponentName2,
2348 &gEfiDriverConfigurationProtocolGuid,
2349 DriverConfiguration,
2350 &gEfiDriverConfiguration2ProtocolGuid,
2351 DriverConfiguration2,
2352 NULL
2353 );
2354 }
2355 }
2356 } else {
2357 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
2358 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2359 Status = gBS->UninstallMultipleProtocolInterfaces (
2360 DriverBinding->DriverBindingHandle,
2361 &gEfiDriverBindingProtocolGuid,
2362 DriverBinding,
2363 &gEfiDriverConfigurationProtocolGuid,
2364 DriverConfiguration,
2365 &gEfiDriverConfiguration2ProtocolGuid,
2366 DriverConfiguration2,
2367 &gEfiDriverDiagnostics2ProtocolGuid,
2368 DriverDiagnostics2,
2369 NULL
2370 );
2371 } else {
2372 Status = gBS->UninstallMultipleProtocolInterfaces (
2373 DriverBinding->DriverBindingHandle,
2374 &gEfiDriverBindingProtocolGuid,
2375 DriverBinding,
2376 &gEfiComponentName2ProtocolGuid,
2377 ComponentName2,
2378 &gEfiDriverConfigurationProtocolGuid,
2379 DriverConfiguration,
2380 &gEfiDriverConfiguration2ProtocolGuid,
2381 DriverConfiguration2,
2382 &gEfiDriverDiagnostics2ProtocolGuid,
2383 DriverDiagnostics2,
2384 NULL
2385 );
2386 }
2387 } else {
2388 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2389 Status = gBS->UninstallMultipleProtocolInterfaces (
2390 DriverBinding->DriverBindingHandle,
2391 &gEfiDriverBindingProtocolGuid,
2392 DriverBinding,
2393 &gEfiComponentNameProtocolGuid,
2394 ComponentName,
2395 &gEfiDriverConfigurationProtocolGuid,
2396 DriverConfiguration,
2397 &gEfiDriverConfiguration2ProtocolGuid,
2398 DriverConfiguration2,
2399 &gEfiDriverDiagnostics2ProtocolGuid,
2400 DriverDiagnostics2,
2401 NULL
2402 );
2403 } else {
2404 Status = gBS->UninstallMultipleProtocolInterfaces (
2405 DriverBinding->DriverBindingHandle,
2406 &gEfiDriverBindingProtocolGuid,
2407 DriverBinding,
2408 &gEfiComponentNameProtocolGuid,
2409 ComponentName,
2410 &gEfiComponentName2ProtocolGuid,
2411 ComponentName2,
2412 &gEfiDriverConfigurationProtocolGuid,
2413 DriverConfiguration,
2414 &gEfiDriverConfiguration2ProtocolGuid,
2415 DriverConfiguration2,
2416 &gEfiDriverDiagnostics2ProtocolGuid,
2417 DriverDiagnostics2,
2418 NULL
2419 );
2420 }
2421 }
2422 }
2423 } else {
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,
2430 DriverBinding,
2431 &gEfiDriverConfigurationProtocolGuid,
2432 DriverConfiguration,
2433 &gEfiDriverConfiguration2ProtocolGuid,
2434 DriverConfiguration2,
2435 &gEfiDriverDiagnosticsProtocolGuid,
2436 DriverDiagnostics,
2437 NULL
2438 );
2439 } else {
2440 Status = gBS->UninstallMultipleProtocolInterfaces (
2441 DriverBinding->DriverBindingHandle,
2442 &gEfiDriverBindingProtocolGuid,
2443 DriverBinding,
2444 &gEfiComponentName2ProtocolGuid,
2445 ComponentName2,
2446 &gEfiDriverConfigurationProtocolGuid,
2447 DriverConfiguration,
2448 &gEfiDriverConfiguration2ProtocolGuid,
2449 DriverConfiguration2,
2450 &gEfiDriverDiagnosticsProtocolGuid,
2451 DriverDiagnostics,
2452 NULL
2453 );
2454 }
2455 } else {
2456 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2457 Status = gBS->UninstallMultipleProtocolInterfaces (
2458 DriverBinding->DriverBindingHandle,
2459 &gEfiDriverBindingProtocolGuid,
2460 DriverBinding,
2461 &gEfiComponentNameProtocolGuid,
2462 ComponentName,
2463 &gEfiDriverConfigurationProtocolGuid,
2464 DriverConfiguration,
2465 &gEfiDriverConfiguration2ProtocolGuid,
2466 DriverConfiguration2,
2467 &gEfiDriverDiagnosticsProtocolGuid,
2468 DriverDiagnostics,
2469 NULL
2470 );
2471 } else {
2472 Status = gBS->UninstallMultipleProtocolInterfaces (
2473 DriverBinding->DriverBindingHandle,
2474 &gEfiDriverBindingProtocolGuid,
2475 DriverBinding,
2476 &gEfiComponentNameProtocolGuid,
2477 ComponentName,
2478 &gEfiComponentName2ProtocolGuid,
2479 ComponentName2,
2480 &gEfiDriverConfigurationProtocolGuid,
2481 DriverConfiguration,
2482 &gEfiDriverConfiguration2ProtocolGuid,
2483 DriverConfiguration2,
2484 &gEfiDriverDiagnosticsProtocolGuid,
2485 DriverDiagnostics,
2486 NULL
2487 );
2488 }
2489 }
2490 } else {
2491 if ((ComponentName == NULL) || FeaturePcdGet (PcdComponentNameDisable)) {
2492 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2493 Status = gBS->UninstallMultipleProtocolInterfaces (
2494 DriverBinding->DriverBindingHandle,
2495 &gEfiDriverBindingProtocolGuid,
2496 DriverBinding,
2497 &gEfiDriverConfigurationProtocolGuid,
2498 DriverConfiguration,
2499 &gEfiDriverConfiguration2ProtocolGuid,
2500 DriverConfiguration2,
2501 &gEfiDriverDiagnosticsProtocolGuid,
2502 DriverDiagnostics,
2503 &gEfiDriverDiagnostics2ProtocolGuid,
2504 DriverDiagnostics2,
2505 NULL
2506 );
2507 } else {
2508 Status = gBS->UninstallMultipleProtocolInterfaces (
2509 DriverBinding->DriverBindingHandle,
2510 &gEfiDriverBindingProtocolGuid,
2511 DriverBinding,
2512 &gEfiComponentName2ProtocolGuid,
2513 ComponentName2,
2514 &gEfiDriverConfigurationProtocolGuid,
2515 DriverConfiguration,
2516 &gEfiDriverConfiguration2ProtocolGuid,
2517 DriverConfiguration2,
2518 &gEfiDriverDiagnosticsProtocolGuid,
2519 DriverDiagnostics,
2520 &gEfiDriverDiagnostics2ProtocolGuid,
2521 DriverDiagnostics2,
2522 NULL
2523 );
2524 }
2525 } else {
2526 if ((ComponentName2 == NULL) || FeaturePcdGet (PcdComponentName2Disable)) {
2527 Status = gBS->UninstallMultipleProtocolInterfaces (
2528 DriverBinding->DriverBindingHandle,
2529 &gEfiDriverBindingProtocolGuid,
2530 DriverBinding,
2531 &gEfiComponentNameProtocolGuid,
2532 ComponentName,
2533 &gEfiDriverConfigurationProtocolGuid,
2534 DriverConfiguration,
2535 &gEfiDriverConfiguration2ProtocolGuid,
2536 DriverConfiguration2,
2537 &gEfiDriverDiagnosticsProtocolGuid,
2538 DriverDiagnostics,
2539 &gEfiDriverDiagnostics2ProtocolGuid,
2540 DriverDiagnostics2,
2541 NULL
2542 );
2543 } else {
2544 Status = gBS->UninstallMultipleProtocolInterfaces (
2545 DriverBinding->DriverBindingHandle,
2546 &gEfiDriverBindingProtocolGuid,
2547 DriverBinding,
2548 &gEfiComponentNameProtocolGuid,
2549 ComponentName,
2550 &gEfiComponentName2ProtocolGuid,
2551 ComponentName2,
2552 &gEfiDriverConfigurationProtocolGuid,
2553 DriverConfiguration,
2554 &gEfiDriverConfiguration2ProtocolGuid,
2555 DriverConfiguration2,
2556 &gEfiDriverDiagnosticsProtocolGuid,
2557 DriverDiagnostics,
2558 &gEfiDriverDiagnostics2ProtocolGuid,
2559 DriverDiagnostics2,
2560 NULL
2561 );
2562 }
2563 }
2564 }
2565 }
2566 }
2567 }
2568
2569 //
2570 // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
2571 //
2572 ASSERT_EFI_ERROR (Status);
2573
2574 return Status;
2575}
#define NULL
Definition: Base.h:319
#define CONST
Definition: Base.h:259
#define IN
Definition: Base.h:279
#define ASSERT_EFI_ERROR(StatusParameter)
Definition: DebugLib.h:462
#define FeaturePcdGet(TokenName)
Definition: PcdLib.h:50
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
EFI_BOOT_SERVICES * gBS
EFI_STATUS EFIAPI EfiLibUninstallAllDriverProtocols2(IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL, IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL, IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration OPTIONAL, IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL *DriverConfiguration2 OPTIONAL, IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL, IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL)
EFI_STATUS EFIAPI EfiLibUninstallDriverBindingComponentName2(IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL, IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL)
EFI_STATUS EFIAPI EfiLibInstallAllDriverProtocols2(IN CONST EFI_HANDLE ImageHandle, IN CONST EFI_SYSTEM_TABLE *SystemTable, IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN EFI_HANDLE DriverBindingHandle, IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL, IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL, IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration OPTIONAL, IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL *DriverConfiguration2 OPTIONAL, IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL, IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL)
EFI_STATUS EFIAPI EfiLibInstallAllDriverProtocols(IN CONST EFI_HANDLE ImageHandle, IN CONST EFI_SYSTEM_TABLE *SystemTable, IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN EFI_HANDLE DriverBindingHandle, IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL, IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration OPTIONAL, IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL)
EFI_STATUS EFIAPI EfiLibInstallDriverBinding(IN CONST EFI_HANDLE ImageHandle, IN CONST EFI_SYSTEM_TABLE *SystemTable, IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN EFI_HANDLE DriverBindingHandle)
EFI_STATUS EFIAPI EfiLibUninstallAllDriverProtocols(IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL, IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration OPTIONAL, IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL)
EFI_STATUS EFIAPI EfiLibInstallDriverBindingComponentName2(IN CONST EFI_HANDLE ImageHandle, IN CONST EFI_SYSTEM_TABLE *SystemTable, IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN EFI_HANDLE DriverBindingHandle, IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL, IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL)
EFI_STATUS EFIAPI EfiLibUninstallDriverBinding(IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding)