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


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

Подпрограмма RtlSplay перебалансирует или "splays", дерево ссылок splay вокруг указанной ссылки splay, что делает эту связь новым корнем дерева.

Синтаксис

NTSYSAPI PRTL_SPLAY_LINKS RtlSplay(
  [in, out] PRTL_SPLAY_LINKS Links
);

Параметры

[in, out] Links

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

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

RtlSplay возвращает указатель Связи , когда он перераспреобно сбалансировал дерево.

Комментарии

Если L является заданной ссылкой, P — родительским узлом, а G — узлом бабушки и дедушки, RtlSplay перебалансирует дерево ссылок splay в соответствии с одним из шести шаблонов, показанных на следующем рисунке.

Схема, иллюстрирующая перебалансирование дерева ссылок splay, где L — это заданная ссылка, P — родительский узел, а G — узел бабушки и дедушки.

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

Вызывающие функции RtlSplay должны выполняться в irQL <= DISPATCH_LEVEL, если дерево не пагрянуло. Как правило, вызывающие абоненты выполняются на PASSIVE_LEVEL IRQL.

Требования

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

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

RtlDelete

RtlInitializeSplayLinks

RtlInsertAsLeftChild

RtlInsertAsRightChild