Freigeben über


RtlDeleteElementGenericTableAvl-Funktion (ntddk.h)

Die RtlDeleteElementGenericTableAvl-Routine löscht ein Element aus einer generischen Tabelle.

Syntax

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

Parameter

[in] Table

Ein Zeiger auf die generische Tabelle (RTL_AVL_TABLE). Die Tabelle muss durch Aufrufen von RtlInitializeGenericTableAvl initialisiert worden sein.

[in] Buffer

Ein Zeiger auf einen vom Aufrufer zugeordneten Puffer, der einen Wert enthält, der das zu löschende Element eindeutig identifiziert.

Rückgabewert

RtlDeleteElementGenericTableAvl gibt TRUE zurück, wenn das Element erfolgreich gelöscht wurde, andernfalls FALSE .

Hinweise

RtlDeleteElementGenericTableAvl ruft die CompareRoutine und FreeRoutine auf , die im Aufruf von RtlInitializeGenericTableAvl registriert wurden.

Standardmäßig verwendet das Betriebssystem Splay-Strukturen, um generische Tabellen zu implementieren, aber die RtlDeleteElementGenericTableAvl-Routine funktioniert nur mit Adelson-Velsky/Landis-Strukturen (AVL). Um die generischen Tabellenroutinen so zu konfigurieren, dass sie AVL-Strukturen anstelle von Splaystrukturen in Ihrem Treiber verwenden, fügen Sie die folgende define-Anweisung in eine allgemeine Headerdatei ein, bevor Sie Ntddk.h einschließen:

#define RTL_USE_AVL_TABLES 0

Wenn RTL_USE_AVL_TABLES nicht definiert ist, müssen Sie die AVL-Form der generischen Tabellenroutinen verwenden. Verwenden Sie beispielsweise die RtlDeleteElementGenericTableAvl-Routine anstelle von RtlDeleteElementGenericTable. Im Aufruf von RtlDeleteElementGenericTableAvl muss der Aufrufer anstelle von RTL_GENERIC_TABLE eine RTL_AVL_TABLE Tabellenstruktur übergeben.

Anrufer der Rtl.. GenericTableAvl-Routinen sind für die ausschließliche Synchronisierung des Zugriffs auf die generische Tabelle verantwortlich. Ein exklusiver schneller Mutex ist der effizienteste Synchronisierungsmechanismus, der für diesen Zweck verwendet werden kann.

Aufrufer von RtlDeleteElementGenericTableAvl müssen unter IRQL < DISPATCH_LEVEL ausgeführt werden, wenn eine der folgenden Bedingungen erfüllt ist:

  • Der vom Aufrufer zugeordnete Arbeitsspeicher bei Table oder buffer kann ausgelagert werden.
  • Die vom Aufrufer bereitgestellte CompareRoutine oder FreeRoutine enthält auslagerungsfähigen Code.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows XP.
Zielplattform Universell
Header ntddk.h (include Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.

Weitere Informationen

RtlInitializeGenericTableAvl

RtlInsertElementGenericTableAvl