RTL_AVL_TABLE-Struktur (ntddk.h)
Die RTL_AVL_TABLE-Struktur enthält dateisystemspezifische Daten für eine Adelson-Velsky/Landis-Struktur (AVL). Eine AVL-Struktur gewährleistet eine ausgewogenere, flachere Strukturimplementierung als eine Splaybaumimplementierung einer generischen Tabelle (RTL_GENERIC_TABLE).
RTL_AVL_TABLE undurchsichtig ist, kann also nicht direkt manipuliert werden. Treiber müssen die im Abschnitt Hinweise beschriebenen Supportroutinen verwenden, um RTL_AVL_TABLE Werte zu bearbeiten.
Syntax
typedef struct _RTL_AVL_TABLE {
RTL_BALANCED_LINKS BalancedRoot;
PVOID OrderedPointer;
ULONG WhichOrderedElement;
ULONG NumberGenericTableElements;
ULONG DepthOfTree;
PRTL_BALANCED_LINKS RestartKey;
ULONG DeleteCount;
PRTL_AVL_COMPARE_ROUTINE CompareRoutine;
PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine;
PRTL_AVL_FREE_ROUTINE FreeRoutine;
PVOID TableContext;
} RTL_AVL_TABLE;
Member
BalancedRoot
Ist für das System reserviert.
OrderedPointer
Ist für das System reserviert.
WhichOrderedElement
Ist für das System reserviert.
NumberGenericTableElements
Ist für das System reserviert.
DepthOfTree
Ist für das System reserviert.
RestartKey
Ist für das System reserviert.
DeleteCount
Ist für das System reserviert.
CompareRoutine
Ist für das System reserviert.
AllocateRoutine
Ist für das System reserviert.
FreeRoutine
Ist für das System reserviert.
TableContext
Ist für das System reserviert.
Hinweise
Um ein AVL-Tabellenpaket zu initialisieren, weisen Sie einen Puffer zu, der mindestens sizeof(RTL_AVL_TABLE) Bytes aufweist. Anschließend können Sie diesen Puffer verwenden, um die initialisierte AVL-Tabellenstruktur von einem Aufruf der RtlInitializeGenericTableAvl-Routine zu empfangen. Verwenden Sie die folgenden Routinen, um die Tabelle zu bearbeiten:
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Diese Struktur ist unter Windows XP und höher verfügbar. |
Kopfzeile | ntddk.h (include Ntddk.h) |
Weitere Informationen
RtlDeleteElementGenericTableAvl
RtlEnumerateGenericTableLikeADirectory
RtlEnumerateGenericTableWithoutSplayingAvl
RtlInsertElementGenericTableAvl
RtlInsertElementGenericTableFullAvl
RtlLookupElementGenericTableAvl
RtlLookupElementGenericTableFullAvl