PopBootStatRestoreDefaults
INT64 __stdcall PopBootStatRestoreDefaults(){
CHAR v0;
_ETHREAD *CurrentThread;
INT16 v2;
int v3;
void *FileHandle;
FileHandle = 0i64;
v0 = *((_BYTE *)KeGetCurrentThread() + 562);
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
ExAcquirePushLockExclusiveEx((UINT64)&PopBootStatLock, 0i64);
v3 = RtlLockBootStatusData(&FileHandle);
if( v3 >= 0 )
{
if( !v0 || (v3 = PopBootStatAccessCheck(FileHandle, v0, 1ui64), v3 >= 0) )
v3 = RtlRestoreBootStatusDefaults(FileHandle);
}
if( FileHandle )
RtlUnlockBootStatusData(FileHandle, v2);
if( (_InterlockedExchangeAdd64((volatile signed __int64 *)&PopBootStatLock, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
ExfTryToWakePushLock((volatile INT64 *)&PopBootStatLock);
KeAbPostRelease(&PopBootStatLock);
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
return(unsigned int)v3;
}Referenced by:
PopPowerInformationInternal