{\r
EFI_STATUS Status;\r
EFI_HANDLE SmmHandle;\r
+ UINTN Index;\r
\r
//\r
// Install SMM Legacy Boot protocol.\r
\r
SmiHandlerUnRegister (DispatchHandle);\r
\r
+ //\r
+ // It is legacy boot, unregister ExitBootService SMI handler.\r
+ //\r
+ for (Index = 0; mSmmCoreSmiHandlers[Index].HandlerType != NULL; Index++) {\r
+ if (CompareGuid (mSmmCoreSmiHandlers[Index].HandlerType, &gEfiEventExitBootServicesGuid)) {\r
+ SmiHandlerUnRegister (mSmmCoreSmiHandlers[Index].DispatchHandle);\r
+ break;\r
+ }\r
+ }\r
+\r
return Status;\r
}\r
\r
{\r
EFI_STATUS Status;\r
EFI_HANDLE SmmHandle;\r
+ UINTN Index;\r
\r
//\r
// Install SMM Exit Boot Services protocol.\r
\r
SmiHandlerUnRegister (DispatchHandle);\r
\r
+ //\r
+ // It is UEFI boot, unregister LegacyBoot SMI handler.\r
+ //\r
+ for (Index = 0; mSmmCoreSmiHandlers[Index].HandlerType != NULL; Index++) {\r
+ if (CompareGuid (mSmmCoreSmiHandlers[Index].HandlerType, &gEfiEventLegacyBootGuid)) {\r
+ SmiHandlerUnRegister (mSmmCoreSmiHandlers[Index].DispatchHandle);\r
+ break;\r
+ }\r
+ }\r
+\r
return Status;\r
}\r
\r