KeRemoveQueueApc
UINT8 __stdcall KeRemoveQueueApc(_KAPC *Apc){
_ETHREAD *Thread;
unsigned __int8 CurrentIrql;
UINT8 v4;
UINT64 SpinCount;
Thread = Apc->Thread;
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
LODWORD(SpinCount) = 0;
while( _interlockedbittestandset64((volatile signed __int32 *)Thread + 16, 0i64) )
{
do
KeYieldProcessorEx(&SpinCount);
while( *((_QWORD *)Thread + 8) );
}
v4 = KiRemoveQueueApc(Apc);
KiReleaseThreadLockSafe((INT64)Thread);
__writecr8(CurrentIrql);
return v4;
}Referenced by:
CmNotifyRunDown
EtwpCancelPendingStackwalkApcs
EtwpCovSampCaptureCancelApcs
EtwpQueueStackWalkApc
EtwpTraceThreadRundownWithStack
ExpCancelTimer
ExpSetTimerObject