+/**\r
+ Software SMI handler that is called when the EndOfDxe event is signalled.\r
+ This function installs the SMM EndOfDxe Protocol so SMM Drivers are informed that\r
+ platform code will invoke 3rd part code.\r
+\r
+ @param DispatchHandle The unique handle assigned to this handler by SmiHandlerRegister().\r
+ @param Context Points to an optional handler context which was specified when the handler was registered.\r
+ @param CommBuffer A pointer to a collection of data in memory that will\r
+ be conveyed from a non-SMM environment into an SMM environment.\r
+ @param CommBufferSize The size of the CommBuffer.\r
+\r
+ @return Status Code\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+SmmEndOfDxeHandler (\r
+ IN EFI_HANDLE DispatchHandle,\r
+ IN CONST VOID *Context, OPTIONAL\r
+ IN OUT VOID *CommBuffer, OPTIONAL\r
+ IN OUT UINTN *CommBufferSize OPTIONAL\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+ EFI_HANDLE SmmHandle;\r
+\r
+ DEBUG ((EFI_D_INFO, "SmmEndOfDxeHandler\n"));\r
+ //\r
+ // Install SMM EndOfDxe protocol\r
+ //\r
+ SmmHandle = NULL;\r
+ Status = SmmInstallProtocolInterface (\r
+ &SmmHandle,\r
+ &gEfiSmmEndOfDxeProtocolGuid,\r
+ EFI_NATIVE_INTERFACE,\r
+ NULL\r
+ );\r
+ return EFI_SUCCESS;\r
+}\r
+\r