EtwpAdjustTraceBuffers

VOID __stdcall EtwpAdjustTraceBuffers(PVOID Context){
  _EJOB *v1; 
  _EJOB *NextSilo; 
  _EJOB *v3; 
  _ETHREAD *CurrentThread; 
  __int64 v5; 
  __int64 v6; 
  PSLIST_ENTRY v7; 
  PSLIST_ENTRY v8; 
  if( EtwpHostSiloState && !*(_DWORD *)(EtwpHostSiloState + 4068) )
  {
    EtwpAdjustSiloTraceBuffers(EtwpHostSiloState);
    v1 = 0i64;
    while( 1 )
    {
      NextSilo = PspGetNextSilo(v1, 1u);
      v3 = NextSilo;
      if( !NextSilo )
        break;
      CurrentThread = (_ETHREAD *)KeGetCurrentThread();
      v5 = *((_QWORD *)CurrentThread + 193);
      *((_QWORD *)CurrentThread + 193) = NextSilo;
      v6 = PsGetCurrentServerSiloGlobals()[108];
      if( v6 && !*(_DWORD *)(v6 + 4068) )
        EtwpAdjustSiloTraceBuffers(v6);
      v1 = v3;
      *((_QWORD *)KeGetCurrentThread() + 193) = v5;
    }
    if( dword_140C53AA4 > 2 * (int)KeNumberProcessors_0 * dword_140C53AA0 )
    {
      do
      {
        v7 = RtlpInterlockedPopEntrySList((PSLIST_HEADER)&EtwpStackLookAsideList);
        if( !v7 )
          break;
        ExFreePoolWithTag(v7, 0);
      }
      while( _InterlockedDecrement(&dword_140C53AA4) > 2 * (int)KeNumberProcessors_0 * dword_140C53AA0 );
    }
    if( dword_140C53AC4 > 2 * (int)KeNumberProcessors_0 * dword_140C53AC0 )
    {
      do
      {
        v8 = RtlpInterlockedPopEntrySList((PSLIST_HEADER)&EtwpLastBranchLookAsideList);
        if( !v8 )
          break;
        ExFreePoolWithTag(v8, 0);
      }
      while( _InterlockedDecrement(&dword_140C53AC4) > 2 * (int)KeNumberProcessors_0 * dword_140C53AC0 );
    }
    _InterlockedExchange(&EtwpBufferAdjustmentActive, 0);
  }
}

Referenced by:

No references.