EtwpAllocatePmcData

NTSTATUS __stdcall EtwpAllocatePmcData(_WMI_LOGGER_CONTEXT *LoggerContext){
  int v2; 
  UINT64 v3; 
  VOID **PoolWithTag; 
  _ETW_PMC_SUPPORT *v5; 
  VOID **v7; 

  KeQueryMaximumProcessorCountEx(0xFFFFu);
  v3 = (unsigned int)(8 * v2 + 24);
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, v3, 1484223557i64);
  v5 = (_ETW_PMC_SUPPORT *)PoolWithTag;
  if( !PoolWithTag )
    return -1073741801;
  memset(PoolWithTag, 0i64, v3);
  v7 = ExAllocatePoolWithTag(0x200ui64, 4i64 * (unsigned int)EtwpMaxPmcCounter, 1484223557i64);
  v5->Source = (_KPROFILE_SOURCE *)v7;
  if( !v7 )
  {
    ExFreePoolWithTag(v5, 0);
    return -1073741801;
  }
  LoggerContext->PmcData = v5;
  return 0;
}

Referenced by:

EtwpUpdatePmcCounters
EtwpUpdatePmcEvents