VfAvlEnumerateNodes

VOID __stdcall VfAvlEnumerateNodes(
        _VF_AVL_TREE *Tree,
        _VF_AVL_LOCK_CONTEXT *LockContext,
        UINT64 *Callback,
        _VF_AVL_TREE_NODE *a4,
        VOID *a5,
        VOID *CallbackContext){
  unsigned int TablesNo; 
  __int64 i; 
  __int64 v11; 
  UINT8 j; 
  VOID *v13; 

  ViAvlRaiseIrqlSafe(LockContext);
  TablesNo = ViTargetDriversAvl.TablesNo;
  for( i = 0i64; (unsigned int)i < TablesNo; i = (unsigned int)(i + 1) )
  {
    v11 = i;
    ViAvlAcquireTableLockAtDpcLevelSafe(&ViTargetDriversAvl.Tables[i], LockContext);
    for( j = 1; ; j = 0 )
    {
      v13 = RtlEnumerateGenericTableAvl(&ViTargetDriversAvl.Tables[v11].RtlTable, j);
      if( !v13 )
        break;
      if( !((unsigned int(__fastcall *)(VOID *, _VF_AVL_TREE_NODE *))Callback)(v13, a4) )
        return;
    }
    ViAvlReleaseTableLockFromDpcLevel(&ViTargetDriversAvl.Tables[v11], LockContext);
  }
}

Referenced by:

VfSuspectDriversGetVerifierInformation
ViTargetFreeContiguousMemory
ViTargetWMIDeregister