HalpTimerSaveProcessorFrequency

ULONG_PTR *__stdcall HalpTimerSaveProcessorFrequency(){
  KPCR *Pcr; 
  INT64 *Timer; 
  unsigned __int64 v2; 
  ULONG_PTR *result; 

  Pcr = KeGetPcr();
  Timer = HalpFindTimer(5, 0, 0, 0, 1);
  if( Timer )
  {
    *(_QWORD *)Pcr->HalReserved = 10000 * ((Timer[24] + 5000) / 0x2710ui64);
    v2 = 1000000 * ((Timer[24] + 500000) / 0xF4240ui64);
    Pcr->StallScaleFactor = v2 / 0xF4240;
    KeGetCurrentPrcb()->MHz = v2 / 0xF4240;
  }
  result = (ULONG_PTR *)HalpFindTimer(7, 0, 0, 0, 1);
  if( result )
  {
    result = (ULONG_PTR *)(10000 * (unsigned int)((*((_QWORD *)result + 24) + 5000i64) / 0x2710ui64));
    Pcr->HalReserved[3] = (unsigned int)result;
  }
  return result;
}

Referenced by:

No references.