EtwpGetSystemMaximumBufferCount

UINT64 __stdcall EtwpGetSystemMaximumBufferCount(_WMI_LOGGER_CONTEXT *LoggerContext){
  _WMI_LOGGER_CONTEXT *v1; 
  unsigned __int64 v2; 
  unsigned __int64 v3; 
  unsigned __int64 v4; 
  unsigned int LoggerMode; 

  v1 = LoggerContext;
  if( LoggerContext->PoolType == PagedPool )
  {
    v3 = MmSizeOfPagedPoolInBytes;
  }
  else
  {
    MmGetMaximumNonPagedPoolInBytes(**(&stru_140C4DB30 + 267), 0);
    if( v3 >= v2 )
      v3 = v2;
  }
  if( (v1->Flags & 2) != 0 && (LoggerMode = v1->LoggerMode, (LoggerMode & 0x2000000) != 0) && (LoggerMode & 0x400) != 0 )
    v4 = 50 * v3;
  else
    v4 = v3 * (unsigned int)EtwpMaxNonPagedPoolUsage;
  return v4 / 0x64 / v1->BufferSize;
}

Referenced by:

EtwpAllocateTraceBufferPool
EtwpUpdateTrace