WmiQueryTraceProviderCount

INT64 __fastcall WmiQueryTraceProviderCount(UINT64 TraceClass){
  unsigned int v1; 
  UINT64 v2; 
  int *v3; 
  unsigned __int8 v4; 
  unsigned __int64 v5; 
  v1 = 0;
  KeWaitForSingleObject(&WmipSMMutex, Executive, 0, 0, 0i64);
  KeAcquireSpinLockRaiseToDpc(&WmipRegistrationSpinLock, v2);
  v3 = (int *)WmipInUseRegEntryHead;
  v5 = v4;
  while( v3 != (int *)&WmipInUseRegEntryHead )
  {
    if( ((v3[12] >> 4) & 0x400000) != 0 && (v3[12] & 0x40000000) != 0 && *((_QWORD *)v3 + 2) )
      ++v1;
    v3 = *(int **)v3;
  }
  KxReleaseSpinLock(&WmipRegistrationSpinLock);
  __writecr8(v5);
  KeReleaseMutex(&WmipSMMutex, 0);
  return v1;
}

Referenced by:

EtwpUpdateFileInfoDriverState