EtwpDereferenceLoggerSecurityDescriptor
VOID __stdcall EtwpDereferenceLoggerSecurityDescriptor(_WMI_LOGGER_CONTEXT *LoggerContext, VOID *SecurityDescriptor){
signed __int64 Object;
signed __int64 v3;
_m_prefetchw(&LoggerContext->SecurityDescriptor);
Object = (signed __int64)LoggerContext->SecurityDescriptor.Object;
if( ((unsigned __int64)SecurityDescriptor ^ Object) >= 0xF )
{
LABEL_4:
ObDereferenceSecurityDescriptor(SecurityDescriptor, 1ui64);
}
else
{
while( 1 )
{
v3 = Object;
Object = _InterlockedCompareExchange64(
(volatile signed __int64 *)&LoggerContext->SecurityDescriptor,
Object + 1,
Object);
if( v3 == Object )
break;
if( ((unsigned __int64)SecurityDescriptor ^ Object) >= 0xF )
goto LABEL_4;
}
}
}Referenced by:
EtwQueryPerformanceTraceInformation
EtwpCheckLoggerControlAccess