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