KiEndThreadCycleAccumulation
UINT64 __stdcall KiEndThreadCycleAccumulation(_KPRCB *Prcb, _ETHREAD *CurrentThread, UINT64 *TimeStamp){
UINT64 v5;
UINT64 v6;
UINT64 v7;
unsigned __int64 v8;
bool v9;
UINT64 result;
*((_BYTE *)Prcb + 32) = 1;
v5 = __rdtsc();
v6 = v5 - *((_QWORD *)Prcb + 4056);
v7 = v6 + *((_QWORD *)CurrentThread + 9);
v8 = v6 + *((unsigned int *)CurrentThread + 20);
*((_QWORD *)CurrentThread + 9) = v7;
*((_QWORD *)Prcb + 4056) = v5;
if( v8 > 0xFFFFFFFF )
LODWORD(v8) = -1;
v9 = (*((_BYTE *)CurrentThread + 2) & 0x3E) == 0;
*((_DWORD *)CurrentThread + 20) = v8;
if( !v9 )
KiEndThreadAccountingPeriod(Prcb, (_KTHREAD *)CurrentThread, v6);
result = v7;
if( TimeStamp )
*TimeStamp = v5;
return result;
}Referenced by:
KeBoostPriorityThread
KeCpuSetReportParkedProcessors
KeDelayExecutionThread
KeRecomputeCpuSetAffinityProcess
KeRemoveQueueEx
KeSetAffinityThread
KeSetBasePriorityThread
KeSetCpuSetsProcess
KeSetLegacyAffinityThread
KeSetSchedulingGroupRankBias
KeSetSelectedCpuSetsThread
KeSetThreadSchedulerAssist
KeUpdateThreadCpuSets
KeUpdateThreadTag
KeYieldExecution
KiAbForceProcessLockEntry
KiAbThreadUnboostCpuPriority
KiCheckForThreadDispatch
KiExitDispatcher
KiGroupSchedulingGenerationEnd
KiIdleSchedule
KiProcessDeferredReadyList
KiQuantumEnd
KiReadyOutSwappedThreads
KiSchedulerApc
KiSetHeteroPolicyThread
PsImpersonateContainerOfThread