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