HalpInitializePnTimers

NTSTATUS __stdcall HalpInitializePnTimers(){
  void *v0; 
  void *v1; 
  void *v2; 
  INT64 *v3; 
  NTSTATUS v4; 
  INT64 *v5; 
  __int64 v6; 

  v3 = (INT64 *)HalpRegisteredTimers;
  v4 = 0;
  v5 = 0i64;
  while( v3 != &HalpRegisteredTimers )
  {
    v5 = v3;
    v3 = (INT64 *)*v3;
    if( (v5[23] & 4) != 0 && (v5[28] & 1) != 0 )
    {
      HalpTimerGetInternalData((_KDPC *)v5, v0, v1, v2);
      v4 = ((__int64(__fastcall *)(__int64))v5[13])(v6);
      if( v4 < 0 )
      {
        *((_DWORD *)v5 + 64) = v4;
        HalpTimerLastProblem = 15;
        *((_DWORD *)v5 + 63) = 15;
        v5[33] = (INT64)"minkernel\\hals\\lib\\timers\\common\\timer.c";
        *((_DWORD *)v5 + 68) = 1732;
        break;
      }
    }
  }
  HalpTimerLoaderBlock = 0i64;
  HalpTimerRegistrationAllowed = 0;
  if( v4 < 0 )
    KeBugCheckEx(0x5Cu, (PVOID)0x110, v5, (PVOID)HalpTimerLastProblem, (PVOID)v4);
  return v4;
}

Referenced by:

No references.