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) |
另请参阅
RtlDeleteElementGenericTableAvl
RtlEnumerateGenericTableLikeADirectory
RtlEnumerateGenericTableWithoutSplayingAvl
RtlInsertElementGenericTableAvl
RtlInsertElementGenericTableFullAvl
RtlLookupElementGenericTableAvl
RtlLookupElementGenericTableFullAvl