EtwpEnableKeyProviders

VOID __stdcall 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 v12; 
  INT64 v13; 
  _RTL_AVL_TABLE Table; 
  int v15[72]; 

  v5 = LoggerId;
  memset(&Table, 0i64, sizeof(Table));
  memset(v15, 0i64, sizeof(v15));
  RtlInitializeGenericTableAvl(
    &Table,
    (PRTL_AVL_COMPARE_ROUTINE)EtwpAvlCompareKeyNames,
    (PRTL_AVL_ALLOCATE_ROUTINE)EtwpAllocateKeyNameEntry,
    (PRTL_AVL_FREE_ROUTINE)EtwpFreeKeyNameEntry,
    0i64);
  LODWORD(v12) = KeyLength;
  EtwpEnumerateKeyProviders(
    (INT64)SiloState,
    v5,
    LoggerRegistryKeyName,
    (INT64)KeyInformation,
    (unsigned int *)v15,
    v10,
    &Table,
    v12);
  if( KeyInformation )
  {
    LODWORD(v13) = KeyLength;
    EtwpEnumerateKeyProviders(
      (INT64)SiloState,
      v5,
      (const WCHAR *)KeyInformation,
      0i64,
      (unsigned int *)v15,
      v11,
      &Table,
      v13);
  }
  EtwpFreeKeyNameList(&Table, v9);
}

Referenced by:

EtwStartAutoLogger