#ifndef _NTRTL_H
typedef struct _RTL_SPLAY_LINKS
{
struct _RTL_SPLAY_LINKS *Parent;
struct _RTL_SPLAY_LINKS *LeftChild;
struct _RTL_SPLAY_LINKS *RightChild;
} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
View code on GitHub// ntddk.h
typedef struct _RTL_SPLAY_LINKS {
struct _RTL_SPLAY_LINKS *Parent;
struct _RTL_SPLAY_LINKS *LeftChild;
struct _RTL_SPLAY_LINKS *RightChild;
} RTL_SPLAY_LINKS;
View the official Windows Driver Kit DDI referenceThis structure is documented in Windows Driver Kit.
The RTL_SPLAY_LINKS structure is an opaque structure and is used by the system to represent a splay link tree node.
ParentAn opaque pointer to the parent node for this node. If only one node in the splay link tree exists, the value of this member is NULL.
LeftChildAn opaque pointer to the left child node for this node. If no left-child node exists, the value of this member is NULL.
RightChildAn opaque pointer to the right child node for this node. If no right-child node exists, the value of this member is NULL.
Typically, each node of a splay link tree consists of a user-defined structure. Each such user-defined node must contain an initialized RTL_SPLAY_LINKS structure. To initialize a RTL_SPLAY_LINKS structure, call the RtlInitializeSplayLinks macro. (Pass the address of the RTL_SPLAY_LINKS member that is contained within the user-defined structure.)
For a splay link tree with one or more nodes, a new node is generally initialized as follows:
Callers of the RtlXxx splay tree routines are responsible for synchronizing access to the splay tree. For more information about how to synchronize access to the splay tree, see Locks, Deadlocks, and Synchronization and Managing Hardware Priorities.