次の方法で共有


RTL_SPLAY_LINKS構造体 (ntddk.h)

RTL_SPLAY_LINKS構造体は不透明な構造であり、システムによって表示リンク ツリー ノードを表すために使用されます。

構文

typedef struct _RTL_SPLAY_LINKS {
  struct _RTL_SPLAY_LINKS *Parent;
  struct _RTL_SPLAY_LINKS *LeftChild;
  struct _RTL_SPLAY_LINKS *RightChild;
} RTL_SPLAY_LINKS;

メンバーズ

Parent

このノードの親ノードへの不透明なポインター。 表示リンク ツリーにノードが 1 つだけ存在する場合、このメンバーの値は NULL

LeftChild

このノードの左側の子ノードへの不透明なポインター。 左子ノードが存在しない場合、このメンバーの値は NULL

RightChild

このノードの右の子ノードへの不透明なポインター。 右子ノードが存在しない場合、このメンバーの値は NULL

備考

通常、スプレイ リンク ツリーの各ノードは、ユーザー定義の構造で構成されます。 このような各ユーザー定義ノードには、初期化されたRTL_SPLAY_LINKS構造体が含まれている必要があります。 RTL_SPLAY_LINKS構造体を初期化するには、RtlInitializeSplayLinks マクロを呼び出します。 (ユーザー定義構造体内に含まれるRTL_SPLAY_LINKS メンバーのアドレスを渡します。

1 つ以上のノードを含むスプレイ リンク ツリーの場合、通常、新しいノードは次のように初期化されます。

  1. RtlLeftChild または RtlRightChild 使用して、新しいノードの挿入ポイントを検索します。 つまり、新しいノードの親ノードの正しいアドレスを取得します。 (新しいノードは、親ノードの左側または右側にアタッチされます)。
  2. RtlInitializeSplayLinks 使用して、前の手順で見つかった親ノードのアドレスを使用して新しいノードを初期化します。
  3. 必要に応じて、RtlInsertAsLeftChild または RtlInsertAsRightChild して、新しいノードを再生ツリーに挿入します。
  4. 新しいノードのアドレス RtlSplay を呼び出します。 (新しいノードがスプレイ ツリーのルートになります)。
RtlXxx の再生ツリー ルーチンの呼び出し元は、スプレイ ツリーへのアクセスを同期する役割を担います。 splay ツリーへのアクセスを同期する方法の詳細については、「ロック、デッドロック、および同期の」および「ハードウェア優先度の管理 を参照してください。

必要条件

要件 価値
サポートされる最小クライアント サポートされているすべてのバージョンの Windows で使用できます。
ヘッダー ntddk.h (Fltkernel.h、Ntifs.h、Ntddk.h を含む)

関連項目

RtlInitializeSplayLinks

RtlInsertAsLeftChild する

RtlInsertAsRightChild する

RtlLeftChild する

RtlRightChild

RtlSplay する