KeSuspendClockTimerSafe
VOID __stdcall KeSuspendClockTimerSafe(){
unsigned __int8 CurrentIrql;
struct _KPRCB *v1;
int v2;
struct _KPRCB *CurrentPrcb;
int v4;
if( ObGetCurrentIrql() >= 0xDu )
{
CurrentPrcb = KeGetCurrentPrcb();
v4 = KiClockTimerOwner;
if( (CurrentPrcb->PendingTickFlags & 1) != 0 )
{
off_140C00888[0]();
CurrentPrcb->PendingTickFlags &= ~1u;
}
if( CurrentPrcb->Number == v4 )
++dword_140C31348;
if( CurrentPrcb->ClockOwner )
CurrentPrcb->ClockOwner = 0;
}
else
{
CurrentIrql = KeGetCurrentIrql();
__writecr8(0xDui64);
v1 = KeGetCurrentPrcb();
v2 = KiClockTimerOwner;
if( (v1->PendingTickFlags & 1) != 0 )
{
off_140C00888[0]();
v1->PendingTickFlags &= ~1u;
}
if( v1->Number == v2 )
++dword_140C31348;
if( v1->ClockOwner )
v1->ClockOwner = 0;
__writecr8(CurrentIrql);
}
}Referenced by:
IopLiveDumpProcessCorralStateChange
PnprQuiesceProcessorDpc
PnprQuiesceProcessors