Partager via


Fonction RtlInsertAsRightChild (ntddk.h)

La routine RtlInsertAsRightChild insère un lien de lecture donné dans l’arborescence en tant qu’enfant approprié d’un nœud donné dans cette arborescence.

Syntaxe

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

Paramètres

[in] ParentLinks

Pointeur vers le nœud de l’arborescence à laquelle ChildLinks doit être inséré en tant qu’enfant approprié.

[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

Aucun

Remarques

Les appelants de RtlInsertAsRightChild sont responsables de répondre aux critères suivants :

  • Le nœud à ParentLinks ne doit pas avoir de bon enfant.

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

  • Le nœud à 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’elle est appelée avec ChildLinks, ChildLinks est un paramètre valide pour RtlInsertAsRightChild. Si RtlParent renvoie un pointeur équivalent vers ChildLinks, ChildLinks est également un paramètre valide pour RtlInsertAsRightChild.

Les appelants du Rtl routines de liaison de lecture 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 RtlInsertAsRightChild doivent être en cours d’exécution au <IRQL = DISPATCH_LEVEL si l’arborescence de liens de lecture et ChildLinks nœud ne sont pas paginées. En règle générale, les appelants s’exécutent au PASSIVE_LEVEL IRQL.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête ntddk.h (include Ntddk.h, Ntifs.h)
IRQL Voir la section Remarques.

Voir aussi

RtlInitializeSplayLinks

RtlInsertAsLeftChild

RtlIsRoot

RtlParent

RtlRightChild

RtlSplay