Partager via


RtlDeleteElementGenericTableAvl, fonction (ntddk.h)

La routine RtlDeleteElementGenericTableAvl supprime un élément d’une table générique.

Syntaxe

NTSYSAPI BOOLEAN RtlDeleteElementGenericTableAvl(
  [in] PRTL_AVL_TABLE Table,
  [in] PVOID          Buffer
);

Paramètres

[in] Table

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

[in] Buffer

Pointeur vers une mémoire tampon allouée par l’appelant contenant une valeur qui identifie de façon unique l’élément à supprimer.

Valeur de retour

RtlDeleteElementGenericTableAvl retourne TRUE si l’élément a été supprimé, FALSE sinon.

Remarques

RtlDeleteElementGenericTableAvl appelle le CompareRoutine et FreeRoutine inscrits dans l’appel à RtlInitializeGenericTableAvl.

Par défaut, le système d’exploitation utilise des arborescences de lecture pour implémenter des tables génériques, mais les RtlDeleteElementGenericTableAvl 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 RtlDeleteElementGenericTableAvl au lieu de RtlDeleteElementGenericTable. Dans l’appel à RtlDeleteElementGenericTableAvl, 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 RtlDeleteElementGenericTableAvl doivent s’exécuter à l'< DISPATCH_LEVEL IRQL si l’une des conditions suivantes est conservée :

  • La mémoire allouée par l’appelant à table ou à tampon est paginable.
  • L’appelant CompareRoutine ou FreeRoutine contient du code 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 Voir la section Remarques.

Voir aussi

RtlInitializeGenericTableAvl

RtlInsertElementGenericTableAvl