KeCancelTimerInternal
VOID __stdcall KeCancelTimerInternal(
INT64 Timer,
_BYTE *DueTime,
INT64 a3,
INT64 a4,
_KDUE_TIME_TYPE *DueType,
UINT64 *TolerableDelay){
int v10;
int v11;
if( KiCancelTimer((_KTIMER *)Timer, 0) )
{
v10 = *(unsigned __int8 *)(Timer + 1);
*(_QWORD *)DueTime = *(_QWORD *)(Timer + 24);
*(_DWORD *)a3 = 2;
if( (v10 & 1) != 0 )
{
*(_DWORD *)a3 = 1;
}
else
{
v11 = *(_DWORD *)a3;
if( (v10 & 2) != 0 )
v11 = 3;
*(_DWORD *)a3 = v11;
}
*(_DWORD *)a4 = ((v10 & 0xFFFFFFFC) << 16) / 0x2710;
}
_InterlockedAnd((volatile signed __int32 *)Timer, 0xFFFFFF7F);
}Referenced by:
ExpTimerAdjust
ExpTimerPause