Freigeben über


RtlNumberGenericTableElementsAvl-Funktion (ntddk.h)

Die RtlNumberGenericTableElementsAvl-Routine gibt die Anzahl der Elemente in einer generischen Tabelle zurück.

Syntax

NTSYSAPI ULONG RtlNumberGenericTableElementsAvl(
  [in] PRTL_AVL_TABLE Table
);

Parameter

[in] Table

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

Rückgabewert

RtlNumberGenericTableElementsAvl gibt die Anzahl der Elemente zurück, die derzeit in der Tabelle gespeichert sind.

Hinweise

Standardmäßig verwendet das Betriebssystem Splay-Strukturen, um generische Tabellen zu implementieren, aber die RtlNumberGenericTableElementsAvl-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 RtlNumberGenericTableElementsAvl-Routine anstelle von RtlNumberGenericTableElements. Im Aufruf von RtlNumberGenericTableElementsAvl 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 RtlNumberGenericTableElementsAvl müssen im IRQL-DISPATCH_LEVEL < ausgeführt werden, wenn der vom Aufrufer zugewiesene Arbeitsspeicher für die generische Tabelle ausgelagert werden kann.

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 < DISPATCH_LEVEL (siehe Abschnitt "Hinweise")

Weitere Informationen

RtlInitializeGenericTableAvl

RtlIsGenericTableEmptyAvl