-/**\r
- SMRAM profile handler to register SMM image.\r
-\r
- @param SmramProfileParameterRegisterImage The parameter of SMM profile register image.\r
-\r
-**/\r
-VOID\r
-SmramProfileHandlerRegisterImage (\r
- IN SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE *SmramProfileParameterRegisterImage\r
- )\r
-{\r
- EFI_STATUS Status;\r
- EFI_SMM_DRIVER_ENTRY DriverEntry;\r
- VOID *EntryPointInImage;\r
-\r
- ZeroMem (&DriverEntry, sizeof (DriverEntry));\r
- CopyMem (&DriverEntry.FileName, &SmramProfileParameterRegisterImage->FileName, sizeof(EFI_GUID));\r
- DriverEntry.ImageBuffer = SmramProfileParameterRegisterImage->ImageBuffer;\r
- DriverEntry.NumberOfPage = (UINTN) SmramProfileParameterRegisterImage->NumberOfPage;\r
- Status = InternalPeCoffGetEntryPoint ((VOID *) (UINTN) DriverEntry.ImageBuffer, &EntryPointInImage);\r
- ASSERT_EFI_ERROR (Status);\r
- DriverEntry.ImageEntryPoint = (PHYSICAL_ADDRESS) (UINTN) EntryPointInImage;\r
-\r
- Status = RegisterSmramProfileImage (&DriverEntry, FALSE);\r
- if (!EFI_ERROR (Status)) {\r
- SmramProfileParameterRegisterImage->Header.ReturnStatus = 0;\r
- }\r
-}\r
-\r
-/**\r
- SMRAM profile handler to unregister SMM image.\r
-\r
- @param SmramProfileParameterUnregisterImage The parameter of SMM profile unregister image.\r
-\r
-**/\r
-VOID\r
-SmramProfileHandlerUnregisterImage (\r
- IN SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE *SmramProfileParameterUnregisterImage\r
- )\r
-{\r
- EFI_STATUS Status;\r
- EFI_SMM_DRIVER_ENTRY DriverEntry;\r
- VOID *EntryPointInImage;\r
-\r
- ZeroMem (&DriverEntry, sizeof (DriverEntry));\r
- CopyMem (&DriverEntry.FileName, &SmramProfileParameterUnregisterImage->FileName, sizeof (EFI_GUID));\r
- DriverEntry.ImageBuffer = SmramProfileParameterUnregisterImage->ImageBuffer;\r
- DriverEntry.NumberOfPage = (UINTN) SmramProfileParameterUnregisterImage->NumberOfPage;\r
- Status = InternalPeCoffGetEntryPoint ((VOID *) (UINTN) DriverEntry.ImageBuffer, &EntryPointInImage);\r
- ASSERT_EFI_ERROR (Status);\r
- DriverEntry.ImageEntryPoint = (PHYSICAL_ADDRESS) (UINTN) EntryPointInImage;\r
-\r
- Status = UnregisterSmramProfileImage (&DriverEntry, FALSE);\r
- if (!EFI_ERROR (Status)) {\r
- SmramProfileParameterUnregisterImage->Header.ReturnStatus = 0;\r
- }\r
-}\r
-\r