EtwpEnableKeyProviders

VOID __fastcall EtwpEnableKeyProviders(
        _ETW_SILODRIVERSTATE *SiloState,
        UINT64 LoggerId,
        const WCHAR *LoggerRegistryKeyName,
        _KEY_BASIC_INFORMATION *KeyInformation,
        UINT64 KeyLength){
  unsigned int v5; 
  RTL_AVL_TABLE *v9; 
  INT64 v10; 
  INT64 v11; 
  INT64 a8; 
  INT64 a8a; 
  struct _RTL_AVL_TABLE Table; 
  INT64 result[36]; 
  v5 = LoggerId;
  memset((INT64)&Table, 0i64);
  memset((INT64)result, 0i64);
  RtlInitializeGenericTableAvl(
    &Table,
    (PRTL_AVL_COMPARE_ROUTINE)EtwpAvlCompareKeyNames,
    EtwpAllocateKeyNameEntry,
    EtwpFreeKeyNameEntry,
    0i64);
  LODWORD(a8) = KeyLength;
  EtwpEnumerateKeyProviders(
    (INT64)SiloState,
    v5,
    LoggerRegistryKeyName,
    (INT64)KeyInformation,
    (UINT64 *)result,
    v10,
    &Table,
    a8);
  if( KeyInformation )
  {
    LODWORD(a8a) = KeyLength;
    EtwpEnumerateKeyProviders(
      (INT64)SiloState,
      v5,
      (const WCHAR *)KeyInformation,
      0i64,
      (UINT64 *)result,
      v11,
      &Table,
      a8a);
  }
  EtwpFreeKeyNameList(&Table, v9);
}

Referenced by:

EtwStartAutoLogger