HalpArtDiscover

INT64 __stdcall HalpArtDiscover(){
  WCHAR v1; 
  struct _UNICODE_STRING DestinationString; 
  TIMER_INITIALIZATION_BLOCK result; 
  _DWORD a1[2]; 
  UINT64 a2; 
  *(_QWORD *)a1 = 0i64;
  LODWORD(a2) = 0;
  DestinationString = 0i64;
  if( HalpArtAvailable(a1, &a2) )
  {
    memset((INT64)&result, 0i64);
    result.CounterFrequency = 0i64;
    result.InternalData = a1;
    result.Header = (SOC_INITIALIZATION_HEADER)0x9000000001i64;
    result.FunctionTable.Initialize = (PTIMER_INITIALIZE)HalpArtInitialize;
    result.FunctionTable.QueryCounter = (PTIMER_QUERY_COUNTER)HalpArtQueryCounter;
    result.CounterBitWidth = 64;
    result.KnownType = TimerART;
    result.Capabilities = 1081347;
    result.InternalDataSize = 12;
    RtlInitUnicodeString(
      &DestinationString,
      L"VEN_vvvv&DEV_dddd&SUBVEN_ssss&SUBDEV_yyyy&REV_rrrr&INST_iiii&UID_uuuuuuuu",
      v1);
    HalpTimerRegister(&result, &DestinationString);
    HalpTimerAuxiliaryClockEnabled = 1;
  }
  return 0i64;
}

Referenced by:

HalpTimerRegisterBuiltinPlugins