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. RtlInsertAsLeftChild 또는 RtlInsertAsRightChild를 적절하게 사용하여 새 노드를 splay 트리에 삽입합니다.
  4. 새 노드의 주소를 사용하여 RtlSplay 를 호출합니다. (새 노드는 splay 트리의 루트가 됩니다.)
RtlXxx splay 트리 루틴의 호출자는 splay 트리에 대한 액세스를 동기화하는 역할을 합니다. splay 트리에 대한 액세스를 동기화하는 방법에 대한 자세한 내용은 잠금, 교착 상태 및 동기화 및하드웨어 우선 순위 관리를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 지원되는 모든 Windows 버전에서 사용할 수 있습니다.
머리글 ntddk.h(Fltkernel.h, Ntifs.h, Ntddk.h 포함)

추가 정보

RtlInitializeSplayLinks

RtlInsertAsLeftChild

RtlInsertAsRightChild

RtlLeftChild

RtlRightChild

RtlSplay