Поделиться через


Функция RtlInsertAsRightChild (ntddk.h)

Подпрограмма RtlInsertAsRightChild вставляет заданную ссылку splay в дерево в качестве правого дочернего элемента данного узла в этом дереве.

Синтаксис

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

Параметры

[in] ParentLinks

Указатель на узел в дереве, в который следует вставить ChildLinks в качестве правого дочернего элемента.

[in] ChildLinks

Указатель на узел ссылки splay, который необходимо вставить в дерево. Узел должен быть инициализирован путем вызова RtlInitializeSplayLinks.

Возвращаемое значение

None

Remarks

Вызывающие абоненты RtlInsertAsRightChild отвечают за соблюдение следующих критериев:

  • Узел в ParentLinks не должен иметь правого дочернего элемента.

    Вызывающий объект может определить, имеет ли узел уже правильный дочерний элемент, вызвав RtlRightChild. Если RtlRightChild возвращает значение NULL, ParentLinks является допустимым параметром для RtlInsertAsRightChild.

  • Узел в ChildLinks не должен иметь родительского элемента.

    Вызывающий объект может определить, есть ли у этого узла родительский узел, вызвав RtlIsRoot или RtlParent. Если функция RtlIsRoot возвращает значение TRUE при вызове с помощью ChildLinks, childLinks является допустимым параметром для RtlInsertAsRightChild. Если RtlParent возвращает эквивалентный указатель на ChildLinks, ChildLinks также является допустимым параметром для RtlInsertAsRightChild.

Вызывающие подпрограммы ссылок Rtl splay отвечают за синхронизацию доступа к дереву ссылок splay. Быстрый мьютекс является наиболее эффективным механизмом синхронизации, используемым для этой цели.

Вызывающие элементы RtlInsertAsRightChild должны выполняться в IRQL <= DISPATCH_LEVEL если дерево ссылок splay и узел ChildLinks не загружены . Как правило, вызывающие абоненты выполняются на PASSIVE_LEVEL IRQL.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть ntddk.h (включая Ntddk.h, Ntifs.h)
IRQL См. раздел "Примечания".

См. также раздел

RtlInitializeSplayLinks

RtlInsertAsLeftChild

RtlIsRoot

RtlParent

RtlRightChild

RtlSplay