RTL_AVL_TABLE 構造体 (ntddk.h)
RTL_AVL_TABLE構造体には、Adelson-Velsky/Landis (AVL) ツリーのファイル システム固有のデータが含まれています。 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 テーブル パッケージを初期化するには、 sizeof(RTL_AVL_TABLE) バイト以上のバッファーを割り当てます。 その後、このバッファーを使用して、 RtlInitializeGenericTableAvl ルーチンの呼び出しから初期化された AVL テーブル構造を受け取ることができます。 テーブルを操作するには、次のルーチンを使用します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | この構造は、Windows XP 以降で使用できます。 |
Header | ntddk.h (Ntddk.h を含む) |
こちらもご覧ください
RtlDeleteElementGenericTableAvl
RtlEnumerateGenericTableLikeADirectory
RtlEnumerateGenericTableWithoutSplayingAvl
RtlInsertElementGenericTableAvl
RtlInsertElementGenericTableFullAvl
RtlLookupElementGenericTableAvl
RtlLookupElementGenericTableFullAvl