PfpScenCtxQueryScenarioInformation
VOID __fastcall PfpScenCtxQueryScenarioInformation(_EX_PUSH_LOCK *PushLock, INT64 a2){
_ETHREAD *CurrentThread;
char v5;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
ExAcquirePushLockExclusiveEx(PushLock, 0i64);
*(_DWORD *)(a2 + 4) = PushLock[6]._bf_0;
*(_DWORD *)(a2 + 12) = HIDWORD(PushLock[6].Ptr);
if( LODWORD(PushLock[6]._bf_0) == 3 )
*(_EX_PUSH_LOCK *)(a2 + 24) = PushLock[7];
KeResetEvent((_KEVENT *)PushLock[8]._bf_0);
v5 = _InterlockedExchangeAdd64(&PushLock->_bf_0, 0xFFFFFFFFFFFFFFFFui64);
if( (v5 & 2) != 0 && (v5 & 4) == 0 )
ExfTryToWakePushLock(PushLock);
KeAbPostRelease(PushLock);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
}Referenced by:
PfpQueryScenarioInformation