次の方法で共有


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 を含む)

こちらもご覧ください

RTL_GENERIC_TABLE

RtlDeleteElementGenericTableAvl

RtlEnumerateGenericTableAvl

RtlEnumerateGenericTableLikeADirectory

RtlEnumerateGenericTableWithoutSplayingAvl

RtlGetElementGenericTableAvl

RtlInitializeGenericTableAvl

RtlInsertElementGenericTableAvl

RtlInsertElementGenericTableFullAvl

RtlIsGenericTableEmptyAvl

RtlLookupElementGenericTableAvl

RtlLookupElementGenericTableFullAvl

RtlLookupFirstMatchingElementGenericTableAvl

RtlNumberGenericTableElementsAvl