次の方法で共有


RtlInsertAsLeftChild 関数 (ntddk.h)

RtlInsertAsLeftChild ルーチンは、指定したノードの左の子として、ツリーに splay リンク ノードを挿入します。

構文

void RtlInsertAsLeftChild(
  [in] PRTL_SPLAY_LINKS ParentLinks,
  [in] PRTL_SPLAY_LINKS ChildLinks
);

パラメーター

[in] ParentLinks

ChildLinks を左の子として挿入するツリー内のノードへのポインター。

[in] ChildLinks

ツリーに挿入する splay リンク ノードへのポインター。 ノードは RtlInitializeSplayLinks を呼び出して初期化されている必要があります。

戻り値

なし

解説

RtlInsertAsLeftChild の呼び出し元は、次の条件を満たしている必要があります。

  • ParentLinks のノードには、左の子は必要ありません。

    呼び出し元は、 RtlLeftChild を呼び出すことによって、ノードに既に左の子があるかどうかを判断できます。 RtlLeftChild がNULL を返す場合、ParentLinksRtlInsertAsLeftChild に対する有効なパラメーターです。

  • ChildLinks のノードには親が存在しない必要があります。

    呼び出し元は、 RtlIsRoot または RtlParent を呼び出すことによって、このノードに既に親があるかどうかを判断できます。 ChildLinks で呼び出されたときに RtlIsRootTRUE を返す場合、ChildLinksRtlInsertAsLeftChild に対する有効なパラメーターです。 RtlParent がChildLinks への同等のポインターを返す場合、ChildLinksRtlInsertAsLeftChild に対する有効なパラメーターです。

Rtl スプレイ リンク ルーチンの呼び出し元は、スプレイ リンク ツリーへのアクセスを同期する役割を担います。 高速ミューテックスは、この目的で使用する最も効率的な同期メカニズムです。

splay リンク ツリーと ChildLinks ノードが非ページの場合、RtlInsertAsLeftChild の呼び出し元は IRQL <= DISPATCH_LEVELで実行されている必要があります。 通常、呼び出し元は IRQL PASSIVE_LEVELで実行されています。

要件

要件
対象プラットフォーム デスクトップ
Header ntddk.h (Ntddk.h、Ntifs.h を含む)
IRQL 「解説」を参照してください。

こちらもご覧ください

RtlInitializeSplayLinks

RtlInsertAsRightChild

RtlIsRoot

RtlLeftChild

RtlParent

RtlSplay