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.h
definierten 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 |