структура RTL_SPLAY_LINKS (ntddk.h)

Структура RTL_SPLAY_LINKS является непрозрачной структурой и используется системой для представления узла дерева связей splay.

Синтаксис

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

Члены

Parent

Непрозрачный указатель на родительский узел для этого узла. Если в дереве ссылок splay существует только один узел, значение этого элемента равно NULL.

LeftChild

Непрозрачный указатель на левый дочерний узел для этого узла. Если левый дочерний узел не существует, значение этого элемента равно NULL.

RightChild

Непрозрачный указатель на правый дочерний узел для этого узла. Если правый дочерний узел не существует, значение этого элемента равно NULL.

Комментарии

Как правило, каждый узел дерева ссылок splay состоит из определяемой пользователем структуры. Каждый такой определяемый пользователем узел должен содержать инициализированную структуру RTL_SPLAY_LINKS. Чтобы инициализировать структуру RTL_SPLAY_LINKS, вызовите макрос RtlInitializeSplayLinks . (Передайте адрес элемента RTL_SPLAY_LINKS, содержащегося в пользовательской структуре.)

Для дерева связей splay с одним или несколькими узлами новый узел обычно инициализируется следующим образом:

  1. Используйте RtlLeftChild и (или) RtlRightChild , чтобы найти точку вставки для нового узла. То есть получите правильный адрес родительского узла для нового узла. (Новый узел будет присоединен слева от родительского узла или справа.)
  2. Используйте RtlInitializeSplayLinks , чтобы инициализировать новый узел с помощью адреса родительского узла, найденного на предыдущем шаге.
  3. Вставьте новый узел в дерево splay с помощью RtlInsertAsLeftChild или RtlInsertAsRightChild соответствующим образом.
  4. Вызовите RtlSplay с адресом нового узла. (Новый узел становится корнем дерева splay.)
Вызывающие подпрограммы дерева RtlXxx отвечают за синхронизацию доступа к дереву splay. Дополнительные сведения о синхронизации доступа к дереву splay см. в разделах Блокировки, взаимоблокировки и синхронизация и Управление приоритетами оборудования.

Требования

Требование Значение
Минимальная версия клиента Доступно во всех поддерживаемых версиях Windows.
Верхняя часть ntddk.h (включая Fltkernel.h, Ntifs.h, Ntddk.h)

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

RtlInitializeSplayLinks

RtlInsertAsLeftChild

RtlInsertAsRightChild

RtlLeftChild

RtlRightChild

RtlSplay