Freigeben über


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.hdefinierten 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.hdefiniert) 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

Siehe auch

ExAllocatePoolWithTagPriority

ExAllocatePoolPriorityZero