EtwpGetCompressionSettings

__int64 __fastcall EtwpGetCompressionSettings(_KSPIN_LOCK *a1, unsigned int *a2){
  unsigned int v2; 
  unsigned int v4; 
  _ESERVERSILO_GLOBALS *CurrentServerSiloGlobals; 
  _WMI_LOGGER_CONTEXT *v6; 
  _WMI_LOGGER_CONTEXT *v7; 
  _EX_PUSH_LOCK *p_CompressionLock; 

  v2 = *(unsigned __int16 *)a1;
  v4 = 0;
  CurrentServerSiloGlobals = PsGetCurrentServerSiloGlobals(a1);
  v6 = EtwpAcquireLoggerContextByLoggerId(CurrentServerSiloGlobals->EtwSiloState, v2, 0);
  v7 = v6;
  if( v6 )
  {
    *a2 = v2;
    p_CompressionLock = &v6->CompressionLock;
    ExAcquirePushLockSharedEx(&v6->CompressionLock, 0i64);
    a2[1] = v7->PartialBufferCompressionLevel;
    a2[2] = v7->CompressionRatioGuess;
    a2[3] = v7->CompressionResumptionMode;
    if( _InterlockedCompareExchange64(&p_CompressionLock->_bf_0, 0i64, 17i64) != 17 )
      ExfReleasePushLockShared(p_CompressionLock);
    KeAbPostRelease(p_CompressionLock);
    EtwpReleaseLoggerContext(v7, 0);
  }
  else
  {
    return(unsigned int)-1073741811;
  }
  return v4;
}

Referenced by:

NtTraceControl