RtlInitializeSplayLinks - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
#ifndef _NTRTL_H

#define RtlInitializeSplayLinks(Links) \
{ \
    PRTL_SPLAY_LINKS _SplayLinks; \
    _SplayLinks = (PRTL_SPLAY_LINKS)(Links); \
    _SplayLinks->Parent = _SplayLinks; \
    _SplayLinks->LeftChild = NULL; \
    _SplayLinks->RightChild = NULL; \
}

#endif

View code on GitHub
// ntddk.h

VOID RtlInitializeSplayLinks(
  [in] PRTL_SPLAY_LINKS Links
);
View the official Windows Driver Kit DDI reference

NtDoc

This function is documented in Windows Driver Kit.

Windows Driver Kit DDI reference (nf-ntddk-rtlinitializesplaylinks)

RtlInitializeSplayLinks function

Description

The RtlInitializeSplayLinks routine initializes a splay link node.

Parameters

Pointer to a caller-allocated buffer, which must be at least sizeof(RTL_SPLAY_LINK), to contain the initialized splay link node.

Remarks

Every splay link node, including the initial root node of the splay link tree, must be initialized by calling RtlInitializeSplayLinks before it is passed to any other Rtl splay link routine. The initialized splay link node structure should be considered opaque.

Callers of the Rtl splay link routines are responsible for synchronizing access to the splay link tree. A fast mutex is the most efficient synchronization mechanism to use for this purpose.

Callers of RtlInitializeSplayLinks must be running at IRQL <= DISPATCH_LEVEL if the memory at Links is nonpaged. Usually, callers are running at IRQL PASSIVE_LEVEL.

See also

ExInitializeFastMutex

RtlDeleteNoSplay

RtlInsertAsLeftChild

RtlInsertAsRightChild

RtlIsLeftChild

RtlIsRightChild

RtlIsRoot

RtlLeftChild

RtlParent

RtlRealPredecessor

RtlRealSuccessor

RtlRightChild

RtlSplay

RtlSubtreePredecessor

RtlSubtreeSuccessor