次の方法で共有


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 スプレイ ツリー ルーチンの呼び出し元は、スプレイ ツリーへのアクセスを同期する役割を担います。 スプレイ ツリーへのアクセスを同期する方法の詳細については、「ロック、デッドロック、および同期とハードウェアの優先順位の管理」を参照してください。

要件

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

こちらもご覧ください

RtlInitializeSplayLinks

RtlInsertAsLeftChild

RtlInsertAsRightChild

RtlLeftChild

RtlRightChild

RtlSplay