Partager via


RtlNumberGenericTableElementsAvl, fonction (ntddk.h)

La routine RtlNumberGenericTableElementsAvl retourne le nombre d’éléments d’une table générique.

Syntaxe

NTSYSAPI ULONG RtlNumberGenericTableElementsAvl(
  [in] PRTL_AVL_TABLE Table
);

Paramètres

[in] Table

Pointeur vers la table générique (RTL_AVL_TABLE). La table doit avoir été initialisée en appelant RtlInitializeGenericTableAvl.

Valeur de retour

RtlNumberGenericTableElementsAvl retourne le nombre d’éléments actuellement stockés dans la table.

Remarques

Par défaut, le système d’exploitation utilise des arborescences de lecture pour implémenter des tables génériques, mais la RtlNumberGenericTableElementsAvl routine fonctionne uniquement avec les arbres Adelson-Velsky/Landis (AVL). Pour configurer les routines de table génériques afin d’utiliser des arborescences AVL au lieu d’arborescences de lecture dans votre pilote, insérez l’instruction define suivante dans un fichier d’en-tête commun avant d’inclure Ntddk.h:

#define RTL_USE_AVL_TABLES 0

Si RTL_USE_AVL_TABLES n’est pas défini, vous devez utiliser la forme AVL des routines de table générique. Par exemple, utilisez la routine RtlNumberGenericTableElementsAvl au lieu de RtlNumberGenericTableElements. Dans l’appel à RtlNumberGenericTableElementsAvl, l’appelant doit passer une structure de table RTL_AVL_TABLE plutôt que RTL_GENERIC_TABLE.

Appelants du Rtl.. GenericTableAvl routines sont responsables de la synchronisation exclusive de l’accès à la table générique. Un mutex rapide exclusif est le mécanisme de synchronisation le plus efficace à utiliser à cet effet.

Les appelants de RtlNumberGenericTableElementsAvl doivent s’exécuter à l'< DISPATCH_LEVEL IRQL si la mémoire allouée par l’appelant pour la table générique est paginable.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows XP.
plateforme cible Universel
d’en-tête ntddk.h (include Ntddk.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL (voir la section Remarques)

Voir aussi

RtlInitializeGenericTableAvl

RtlIsGenericTableEmptyAvl