PpLastGoodDoBootProcessing

VOID __stdcall PpLastGoodDoBootProcessing(){
  NTSTATUS v0; 
  UINT8 v1; 
  _UNICODE_STRING SourceRegPath; 
  _UNICODE_STRING DestinationString; 
  _UNICODE_STRING DestinationRegPath; 
  _UNICODE_STRING DestinationPathName; 

  DestinationString = 0i64;
  DestinationPathName = 0i64;
  SourceRegPath = 0i64;
  DestinationRegPath = 0i64;
  RtlInitUnicodeString(&DestinationString, L"\\SystemRoot\\LastGood");
  RtlInitUnicodeString(&SourceRegPath, L"\\Registry\\Machine\\System\\LastKnownGoodRecovery\\LastGood");
  RtlInitUnicodeString(&DestinationPathName, L"\\SystemRoot\\LastGood.Tmp");
  RtlInitUnicodeString(&DestinationRegPath, L"\\Registry\\Machine\\System\\LastKnownGoodRecovery\\LastGood.Tmp");
  if( CmIsLastKnownGoodBoot() )
  {
    PiLastGoodRevertLastKnownDirectory(&DestinationString, &SourceRegPath);
    PiLastGoodRevertLastKnownDirectory(&DestinationPathName, &DestinationRegPath);
  }
  else if( !InitSafeBootMode )
  {
    v0 = IopFileUtilRename(&DestinationString, &DestinationPathName, 0);
    if( (int)(v0 + 0x80000000) < 0 || v0 == -1073741772 )
      PiLastGoodCopyKeyContents(&SourceRegPath, &DestinationRegPath, v1);
  }
}

Referenced by:

IoInitSystemPreDrivers