ExAllocatePoolPriorityUninitialized function (wdm.h)
Diese Routine ist eine Wrapper- und Ersetzungsoption für ExAllocatePoolWithTagPriority.
ExAllocatePoolPriorityUninitialized weist poolspeicher des angegebenen Typs zu.
Syntax
PVOID ExAllocatePoolPriorityUninitialized(
__drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
SIZE_T NumberOfBytes,
ULONG Tag,
EX_POOL_PRIORITY Priority
);
Parameter
PoolType
Der Typ des zuzuweisenden Poolspeichers. Eine Beschreibung der verfügbaren Poolspeichertypen finden Sie unter POOL_TYPE.
Sie können den Enumerationswert ändern, indem Sie ein bitweises ODER mit dem in wdm.h
definierten POOL_RAISE_IF_ALLOCATION_FAILURE Flag ausführen. Dieses Flag bewirkt, dass eine Ausnahme ausgelöst wird, wenn die Anforderung nicht erfüllt werden kann. Die Verwendung dieser Kennzeichnung wird nicht empfohlen, da sie teuer ist.
Ebenso können Sie den PoolType-wert durch Bitweise-ORing diesen Wert mit dem POOL_COLD_ALLOCATION Flag (auch in wdm.h
definiert) als Hinweis auf den Kernel ändern, um den Speicher von Seiten zuzuweisen, die wahrscheinlich schnell ausgelagert werden. Um den Speicher des residenten Pools so weit wie möglich zu reduzieren, sollten Sie nicht häufig auf diese Zuordnungen verweisen. Das POOL_COLD_ALLOCATION Flag ist nur empfehlungsspezifisch.
NumberOfBytes
Die Anzahl der zuzuordnenden Bytes.
Tag
Das Pooltag, das für den zugewiesenen Speicher verwendet werden soll. Weitere Informationen finden Sie im Tag-Parameter von ExAllocatePoolWithTag.
Priority
Ein EX_POOL_PRIORITY Enumerationswert, der die Priorität dieser Anforderung angibt.
Rückgabewert
ExAllocatePoolPriorityUninitialized gibt NULL zurück, wenn im freien Pool nicht genügend Arbeitsspeicher vorhanden ist, um die Anforderung zu erfüllen, es sei denn, POOL_RAISE_IF_ALLOCATION_FAILURE ist angegeben. Andernfalls gibt die Routine einen Zeiger auf den zugewiesenen Speicher zurück.
Bemerkungen
Speicher, der ExAllocatePoolPriorityUninitialized zugeordnet wird, wird nicht initialisiert. Ein Kernelmodustreiber muss zuerst diesen Speicher null sein, wenn er für Software im Benutzermodus sichtbar wird (um zu vermeiden, dass potenziell privilegierte Inhalte verloren gehen)
Weitere Anleitungen finden Sie im Abschnitt AnmerkungenExAllocatePoolWithTagPriority.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Erfordert WDK für Windows 10, Version 2004. Zielt auf Windows 7 und höhere Versionen des Windows-Betriebssystems ab. |
Zielplattform- | Universal |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= DISPATCH_LEVEL (siehe Abschnitt "Hinweise") |
DDI-Complianceregeln | HwStorPortProhibitedDIs, IrqlExAllocatePool, IrqlExFree2, SpNoWait, StorPortStartIo |