KiStartSavingSupervisorState
INT64 __stdcall KiStartSavingSupervisorState(){
_ETHREAD *CurrentThread;
unsigned int updated;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
ExAcquirePushLockExclusiveEx((UINT64)&KiSupervisorXStateFeaturesLock, 0i64);
updated = KiUpdateSavedSupervisorState();
if( (_InterlockedExchangeAdd64((volatile signed __int64 *)&KiSupervisorXStateFeaturesLock, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
ExfTryToWakePushLock((volatile INT64 *)&KiSupervisorXStateFeaturesLock);
KeAbPostRelease(&KiSupervisorXStateFeaturesLock);
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
return updated;
}Referenced by:
No references.