Partager via


Fonction RtlInsertAsLeftChild (ntddk.h)

La routine RtlInsertAsLeftChild insère un nœud de lien splay dans l’arborescence en tant qu’enfant gauche du nœud spécifié.

Syntaxe

void RtlInsertAsLeftChild(
  [in] PRTL_SPLAY_LINKS ParentLinks,
  [in] PRTL_SPLAY_LINKS ChildLinks
);

Paramètres

[in] ParentLinks

Pointeur vers le nœud dans l’arborescence dans lequel ChildLinks doit être inséré en tant qu’enfant gauche.

[in] ChildLinks

Pointeur vers le nœud de lien de lecture à insérer dans l’arborescence. Le nœud doit avoir été initialisé en appelant RtlInitializeSplayLinks.

Valeur de retour

None

Remarques

Les appelants de RtlInsertAsLeftChild doivent répondre aux critères suivants :

  • Le nœud sur ParentLinks ne doit pas avoir d’enfant restant.

    Un appelant peut déterminer si le nœud a déjà un enfant gauche en appelant RtlLeftChild. Si RtlLeftChild retourne NULL, ParentLinks est un paramètre valide pour RtlInsertAsLeftChild.

  • Le nœud sur ChildLinks ne doit pas avoir de parent.

    Un appelant peut déterminer si ce nœud a déjà un parent en appelant RtlIsRoot ou RtlParent. Si RtlIsRoot retourne TRUE lorsqu’il est appelé avec ChildLinks, ChildLinks est un paramètre valide pour RtlInsertAsLeftChild. Si RtlParent retourne un pointeur équivalent vers ChildLinks, ChildLinks est un paramètre valide pour RtlInsertAsLeftChild.

Les appelants des routines de liaison splay Rtl sont responsables de la synchronisation de l’accès à l’arborescence des liens de lecture. Un mutex rapide est le mécanisme de synchronisation le plus efficace à utiliser à cet effet.

Les appelants de RtlInsertAsLeftChild doivent être en cours d’exécution à IRQL <= DISPATCH_LEVEL si l’arborescence de liens de lecture et le nœud ChildLinks sont non paginés. En règle générale, les appelants s’exécutent à l’IRQL PASSIVE_LEVEL.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête ntddk.h (inclure Ntddk.h, Ntifs.h)
IRQL Consultez la section Notes.

Voir aussi

RtlInitializeSplayLinks

RtlInsertAsRightChild

RtlIsRoot

RtlLeftChild

RtlParent

RtlSplay