ExDereferenceCallBackBlock
VOID __fastcall ExDereferenceCallBackBlock(INT64 *a1, EX_RUNDOWN_REF *a2){
signed __int64 v2;
signed __int64 v3;
_m_prefetchw(a1);
v2 = *a1;
if( ((unsigned __int64)a2 ^ *a1) >= 0xF )
{
LABEL_4:
ExReleaseRundownProtection(a2);
}
else
{
while( 1 )
{
v3 = v2;
v2 = _InterlockedCompareExchange64(a1, v2 + 1, v2);
if( v3 == v2 )
break;
if( ((unsigned __int64)a2 ^ v2) >= 0xF )
goto LABEL_4;
}
}
}Referenced by:
DbgkLkmdRegisterCallback
DbgkLkmdUnregisterCallback
DbgkpLkmdFireCallbacks
ExCallCallBack
ExCallSessionCallBack
PoUnregisterCoalescingCallback
PsCallImageNotifyRoutines
PsInvokeWin32Callout
PsRemoveCreateThreadNotifyRoutine
PsRemoveLoadImageNotifyRoutine
PspCallProcessNotifyRoutines
PspCallThreadNotifyRoutines
PspSetCreateProcessNotifyRoutine