Funzione RtlInsertAsRightChild (ntddk.h)

La routine RtlInsertAsRightChild inserisce un collegamento di splay specificato nell'albero come elemento figlio destro di un determinato nodo nell'albero.

Sintassi

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

Parametri

[in] ParentLinks

Puntatore al nodo nell'albero in cui devono essere inseriti ChildLinks come elemento figlio destro.

[in] ChildLinks

Puntatore al nodo del collegamento splay da inserire nell'albero. Il nodo deve essere stato inizializzato chiamando RtlInitializeSplayLinks.

Valore restituito

nessuno

Osservazioni

I chiamanti di RtlInsertAsRightChild sono responsabili di soddisfare i criteri seguenti:

  • Il nodo in ParentLinks non deve avere un figlio corretto.

    Un chiamante può determinare se il nodo ha già un figlio corretto chiamando RtlRightChild. Se RtlRightChild restituisce NULL, ParentLinks è un parametro valido per RtlInsertAsRightChild.

  • Il nodo in ChildLinks non deve avere alcun elemento padre.

    Un chiamante può determinare se questo nodo ha già un elemento padre chiamando RtlIsRoot o RtlParent. Se RtlIsRoot restituisce TRUE quando viene chiamato con ChildLinks, ChildLinks è un parametro valido per RtlInsertAsRightChild. Se RtlParent restituisce un puntatore equivalente a ChildLinks, ChildLinks è anche un parametro valido per RtlInsertAsRightChild.

I chiamanti delle routine di collegamento Rtl splay sono responsabili della sincronizzazione dell'accesso all'albero dei collegamenti splay. Un mutex veloce è il meccanismo di sincronizzazione più efficiente da usare a questo scopo.

I chiamanti di RtlInsertAsRightChild devono essere in esecuzione in IRQL <= DISPATCH_LEVEL se l'albero dei collegamenti splay e il nodo ChildLinks non vengono visualizzati. In genere, i chiamanti vengono eseguiti in irQL PASSIVE_LEVEL.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione ntddk.h (include Ntddk.h, Ntifs.h)
IRQL Vedere la sezione Osservazioni.

Vedi anche

RtlInitializeSplayLinks

RtlInsertAsLeftChild

RtlIsRoot

RtlParent

RtlRightChild

RtlSplay