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 RtlInitializeGenericTableAvlinitialisiert worden sein.

[in] Buffer

Ein Zeiger auf einen vom Aufrufer zugewiesenen 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, FALSE andernfalls.

Bemerkungen

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

Standardmäßig verwendet das Betriebssystem Splay-Strukturen, um generische Tabellen zu implementieren, aber die RtlDeleteElementGenericTableAvl Routine funktioniert nur mit Adelson-Velsky/Landis (AVL)-Strukturen. Um die generischen Tabellenroutinen für die Verwendung von AVL-Strukturen anstelle von Wiedergabestrukturen in Ihrem Treiber zu konfigurieren, fügen Sie die folgende Define-Anweisung in eine allgemeine Headerdatei ein, bevor Ntddk.heingeschlossen wird:

#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 z. B. die RtlDeleteElementGenericTableAvl Routine anstelle von RtlDeleteElementGenericTable. Im Aufruf von RtlDeleteElementGenericTableAvlmuss der Aufrufer eine RTL_AVL_TABLE Tabellenstruktur statt RTL_GENERIC_TABLEü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 für diesen Zweck.

Anrufer von RtlDeleteElementGenericTableAvl müssen bei IRQL-< DISPATCH_LEVEL ausgeführt werden, wenn eine der folgenden Bedingungen gilt:

  • Der vom Aufrufer zugewiesene Speicher in Table oder bei Buffer kann ausgelagert werden.
  • Der vom Aufrufer bereitgestellte CompareRoutine oder FreeRoutine- enthält ausgelagerten Code.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows XP.
Zielplattform- Universal
Header- ntddk.h (enthalten Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- Siehe Abschnitt "Hinweise".

Siehe auch

RtlInitializeGenericTableAvl

RtlInsertElementGenericTableAvl