ExAllocateFromLookasideListEx-Funktion (wdm.h)
Die ExAllocateFromLookasideListEx Routine entfernt den ersten Eintrag aus der angegebenen Lookaside-Liste oder, wenn die Liste leer ist, dynamisch den Speicher für einen neuen Eintrag zu.
Syntax
PVOID ExAllocateFromLookasideListEx(
[in, out] PLOOKASIDE_LIST_EX Lookaside
);
Parameter
[in, out] Lookaside
Ein Zeiger auf eine LOOKASIDE_LIST_EX Struktur, die eine Lookaside-Liste beschreibt. Diese Struktur wurde zuvor von der ExInitializeLookasideListEx Routine initialisiert.
Rückgabewert
ExAllocateFromLookasideListEx gibt einen Zeiger auf einen Lookaside-List-Eintrag zurück, wenn ein Eintrag in der Liste verfügbar ist oder dynamisch zugewiesen werden kann. Andernfalls gibt diese Routine NULL-zurück.
Bemerkungen
Vorsicht
Ab Windows 11, Version 22H2, wurde diese Funktion von inline in exportierbar geändert. Wenn Sie daher ihren Treiber für die neueste Version von Windows erstellen, kann er in älteren Betriebssystemversionen nicht geladen werden. Um die Zielbetriebssystemversion in Visual Studio zu ändern, wählen Sie "Konfigurationseigenschaften">"Treibereinstellungen">"Allgemein" aus.
Diese Routine entfernt den ersten Eintrag, wenn ein Eintrag verfügbar ist, aus der angegebenen Lookaside-Liste und gibt einen Zeiger auf diesen Eintrag zurück. Wenn die Liste leer ist, weist die Routine Speicher für einen neuen Eintrag zu und gibt einen Zeiger auf diesen Eintrag zurück. Wenn diese Zuordnung fehlschlägt, gibt die Routine NULL-zurück.
Wenn die Lookaside-Liste leer ist, ruft ExAllocateFromLookasideListEx die LookasideListAllocateEx Routine auf, um Speicher für einen neuen Eintrag zuzuweisen, wenn der Treiber eine solche Routine bereitgestellt hat. Andernfalls wird eine Standardzuordnungsroutine verwendet, um den Eintrag zuzuweisen.
Nachdem der Aufrufer den Eintrag verwendet hat, sollte er den Eintrag freigeben, indem er die ExFreeToLookasideListEx Routine aufruft.
In der aktuellen Implementierung wird eine Lookaside-Liste als last-in, first-out (LIFO)-Stapel verwendet. Somit ist der letzte Eintrag, der freigegeben werden soll (und auf den Stapel geschoben wird) der nächste Eintrag, der aus der Liste zugeordnet werden soll (popped).
Weitere Informationen zu Lookaside-Listen finden Sie unter Using Lookaside Lists.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows Vista und höheren Versionen von Windows. |
Zielplattform- | Desktop |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= DISPATCH_LEVEL |