Freigeben über


ExAllocatePoolPriorityUninitialized-Funktion (wdm.h)

Diese Routine ist ein Wrapper und eine Ersatzoption für ExAllocatePoolWithTagPriority.

ExAllocatePoolPriorityUninitialized ordnet 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 zuzuordnenden Poolarbeitsspeichers. Eine Beschreibung der verfügbaren Speichertypen des Pools finden Sie unter POOL_TYPE.

Sie können den Enumerationswert ändern, indem Sie ein bitweises OR mit dem in wdm.hdefinierten flag POOL_RAISE_IF_ALLOCATION_FAILURE ausführen. Dieses Flag bewirkt, dass eine Ausnahme ausgelöst wird, wenn die Anforderung nicht erfüllt werden kann. Die Verwendung dieses Flags wird nicht empfohlen, da es teuer ist.

Auf ähnliche Weise können Sie den PoolType-Wert ändern, indem Sie bitweise-ORing diesen Wert mit dem flag POOL_COLD_ALLOCATION (auch definiert in wdm.h) als Hinweis an 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 eine Empfehlung.

NumberOfBytes

Die Anzahl der zu belegenden Bytes.

Tag

Das Pooltag, das für den zugeordneten Arbeitsspeicher 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 angegeben ist. Andernfalls gibt die Routine einen Zeiger auf den zugeordneten Arbeitsspeicher zurück.

Hinweise

Arbeitsspeicher, den ExAllocatePoolPriorityUninitialized zuordnet, wird nicht initialisiert. Ein Kernelmodustreiber muss diesen Arbeitsspeicher zuerst null haben, wenn er ihn für Die Software im Benutzermodus sichtbar macht (um zu verhindern, dass potenziell privilegierte Inhalte verloren gehen).

Weitere Anleitungen finden Sie im Abschnitt Hinweise von ExAllocatePoolWithTagPriority .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Erfordert WDK für Windows 10, Version 2004. Zielt auf Windows 7 und höhere Versionen des Windows-Betriebssystems ab.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (siehe Abschnitt "Hinweise")
DDI-Complianceregeln HwStorPortProhibitedDDIs, IrqlExAllocatePool, IrqlExFree2, SpNoWait, StorPortStartIo

Weitere Informationen

ExAllocatePoolWithTagPriority

ExAllocatePoolPriorityZero