+/**\r
+\r
+ Migrate Single PPI Pointer from the temporary memory to PEI installed memory.\r
+\r
+ @param SecCoreData Points to a data structure containing SEC to PEI handoff data, such as the size \r
+ and location of temporary RAM, the stack location and the BFV location.\r
+ @param PrivateData Pointer to PeiCore's private data structure.\r
+ @param PpiPointer Pointer to Ppi\r
+\r
+**/\r
+VOID\r
+ConvertSinglePpiPointer (\r
+ IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData,\r
+ IN PEI_CORE_INSTANCE *PrivateData,\r
+ IN PEI_PPI_LIST_POINTERS *PpiPointer\r
+ )\r
+{\r
+ //\r
+ // 1. Convert the pointer to the PPI descriptor from the old TempRam\r
+ // to the relocated physical memory.\r
+ // It (for the pointer to the PPI descriptor) needs to be done before 2 (for\r
+ // the pointer to the GUID) and 3 (for the pointer to the PPI interface structure).\r
+ //\r
+ ConvertPointerInRanges (SecCoreData, PrivateData, &PpiPointer->Raw);\r
+ //\r
+ // 2. Convert the pointer to the GUID in the PPI or NOTIFY descriptor\r
+ // from the old TempRam to the relocated physical memory.\r
+ //\r
+ ConvertPointerInRanges (SecCoreData, PrivateData, (VOID **) &PpiPointer->Ppi->Guid);\r
+ //\r
+ // 3. Convert the pointer to the PPI interface structure in the PPI descriptor\r
+ // from the old TempRam to the relocated physical memory.\r
+ //\r
+ ConvertPointerInRanges (SecCoreData, PrivateData, (VOID **) &PpiPointer->Ppi->Ppi);\r
+}\r
+\r