PopPowerTransitionTimesInMs
VOID __stdcall PopPowerTransitionTimesInMs(
UINT64 *SleepTimeMs,
UINT64 *ResumeTimeMs,
UINT64 *HiberHiberFileTimeMs,
UINT64 *ResumeHiberFileTimeMs,
UINT64 *BiosInitTimeMs){
unsigned __int64 v8;
UINT64 *v9;
int v10;
_LARGE_INTEGER StartTime;
_DWORD *v12;
v8 = 1000i64 * KeGetCurrentPrcb()->MHz;
if( SleepTimeMs )
*(_DWORD *)SleepTimeMs = PopQpcTimeInMs(
(_LARGE_INTEGER *)&stru_140C23628 + 36,
(_LARGE_INTEGER *)&stru_140C23628 + 37);
if( ResumeTimeMs )
*(_DWORD *)ResumeTimeMs = PopQpcTimeInMs(
(_LARGE_INTEGER *)&stru_140C23628 + 40,
(_LARGE_INTEGER *)&stru_140C23628 + 41);
v9 = BiosInitTimeMs;
if( BiosInitTimeMs )
{
StartTime.QuadPart = 0i64;
v10 = PopQpcTimeInMs(&StartTime, (_LARGE_INTEGER *)&stru_140C23628 + 44);
*(_DWORD *)v9 = v10;
if( *(&stru_140C23628 + 218) )
*(_DWORD *)v9 = *(&stru_140C23628 + 120) + v10;
}
if( HiberHiberFileTimeMs )
*(_DWORD *)HiberHiberFileTimeMs = *(&stru_140C23628 + 53) / v8;
if( ResumeHiberFileTimeMs )
*(_DWORD *)ResumeHiberFileTimeMs = (*(&stru_140C23628 + 92) + *(&stru_140C23628 + 67)) / v8;
if( v12 )
*v12 = *(&stru_140C23628 + 49) / v8;
}Referenced by:
PopCalculateWakeTimeAdjustment
PopDiagTracePowerTransitionTime