RTL_AVL_TABLE结构包含 Adelson-Velsky/Landis (AVL) 树的文件系统特定数据。 AVL 树确保比泛型表(RTL_GENERIC_TABLE)的 splay 树实现更平衡、更浅的树实现。
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 表包,请分配至少 sizeof(RTL_AVL_TABLE) 字节大小的缓冲区。 然后,可以使用此缓冲区从对 RtlInitializeGenericTableAvl 例程的调用接收初始化的 AVL 表结构。 使用以下例程作表:
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | 此结构在 Windows XP 及更高版本上可用。 |
| 标头 | ntddk.h (包括 Ntddk.h) |
另请参阅
RtlDeleteElementGenericTableAvl
RtlEnumerateGenericTableLikeADirectory
RtlEnumerateGenericTableWithoutSplayingAvl
RtlInsertElementGenericTableAvl
RtlInsertElementGenericTableFullAvl
RtlLookupElementGenericTableAvl
RtlLookupElementGenericTableFullAvl