RTL_AVL_TABLE 结构 (ntddk.h)

RTL_AVL_TABLE 结构包含 Adelson-Velsky/Landis (AVL) 树的文件系统特定数据。 与泛型表的 splay 树实现相比,AVL 树 (RTL_GENERIC_TABLE) 实现更平衡、更浅。

RTL_AVL_TABLE是不透明的,因此无法直接操作。 驱动程序必须使用“备注”部分中介绍的支持例程来操作RTL_AVL_TABLE值。

语法

typedef struct _RTL_AVL_TABLE {
  RTL_BALANCED_LINKS        BalancedRoot;
  PVOID                     OrderedPointer;
  ULONG                     WhichOrderedElement;
  ULONG                     NumberGenericTableElements;
  ULONG                     DepthOfTree;
  PRTL_BALANCED_LINKS       RestartKey;
  ULONG                     DeleteCount;
  PRTL_AVL_COMPARE_ROUTINE  CompareRoutine;
  PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine;
  PRTL_AVL_FREE_ROUTINE     FreeRoutine;
  PVOID                     TableContext;
} RTL_AVL_TABLE;

成员

BalancedRoot

预留给系统使用。

OrderedPointer

预留给系统使用。

WhichOrderedElement

预留给系统使用。

NumberGenericTableElements

预留给系统使用。

DepthOfTree

预留给系统使用。

RestartKey

预留给系统使用。

DeleteCount

预留给系统使用。

CompareRoutine

预留给系统使用。

AllocateRoutine

预留给系统使用。

FreeRoutine

预留给系统使用。

TableContext

预留给系统使用。

注解

若要初始化 AVL 表包,请分配大小至少为 (RTL_AVL_TABLE ) 字节的缓冲区。 然后,可以使用此缓冲区从调用 RtlInitializeGenericTableAvl 例程接收初始化的 AVL 表结构。 使用以下例程操作表:

要求

要求
最低受支持的客户端 此结构在 Windows XP 及更高版本上可用。
标头 ntddk.h (包括 Ntddk.h)

另请参阅

RTL_GENERIC_TABLE

RtlDeleteElementGenericTableAvl

RtlEnumerateGenericTableAvl

RtlEnumerateGenericTableLikeADirectory

RtlEnumerateGenericTableWithoutSplayingAvl

RtlGetElementGenericTableAvl

RtlInitializeGenericTableAvl

RtlInsertElementGenericTableAvl

RtlInsertElementGenericTableFullAvl

RtlIsGenericTableEmptyAvl

RtlLookupElementGenericTableAvl

RtlLookupElementGenericTableFullAvl

RtlLookupFirstMatchingElementGenericTableAvl

RtlNumberGenericTableElementsAvl