ExAllocatePoolQuotaUninitialized-Funktion (wdm.h)

Die ExAllocatePoolQuotaUninitialized-Routine weist Poolspeicher zu und lädt das Kontingent auf den aktuellen Prozess.

Diese Routine ist ein Wrapper und eine Ersatzoption für ExAllocatePoolWithQuotaTag. Es gibt keinen Unterschied in der Funktionalität.

Syntax

PVOID ExAllocatePoolQuotaUninitialized(
  __drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
  SIZE_T                                         NumberOfBytes,
  ULONG                                          Tag
);

Parameter

PoolType

Der Typ des zuzuordnenden Poolarbeitsspeichers. Eine Beschreibung der verfügbaren Speichertypen des Pools finden Sie unter POOL_TYPE.

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. Geben Sie das Pooltag als Zeichenliteral ungleich 0 von 0 bis vier Zeichen an, Tag1die durch einfache Anführungszeichen getrennt sind (z. B. ). Die Zeichenfolge wird in der Regel in umgekehrter Reihenfolge angegeben (z. B 1gaT. ). Jedes ASCII-Zeichen im Tag muss ein Wert im Bereich 0x20 (Leerzeichen) sein, um 0x7E (Tilde) zu erhalten. Jeder Zuordnungscodepfad sollte ein eindeutiges Pooltag verwenden, um Debuggern und Prüfern beim Identifizieren des Codepfads zu helfen.

Rückgabewert

ExAllocatePoolQuotaUninitialized gibt einen Zeiger auf den zugeordneten Pool zurück.

Wenn die Anforderung nicht erfüllt werden kann, löst ExAllocatePoolQuotaUninitialized eine Ausnahme aus, es sei denn, POOL_QUOTA_FAIL_INSTEAD_OF_RAISE angegeben ist. Die Verwendung POOL_QUOTA_FAIL_INSTEAD_OF_RAISE wird aus Leistungsgründen bevorzugt.

Hinweise

Diese Routine wird von Treibern der obersten Ebene aufgerufen, die Arbeitsspeicher zuweisen, um eine Anforderung im Kontext des Prozesses zu erfüllen, der ursprünglich die E/A-Anforderung gestellt hat. Treiber auf niedrigerer Ebene rufen stattdessen ExAllocatePoolUninitialized auf .

Arbeitsspeicher, den ExAllocatePoolQuotaUninitialized 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 ExAllocatePoolWithQuotaTag .

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 IRQL <= DISPATCH_LEVEL (siehe Abschnitt "Hinweise")
DDI-Complianceregeln HwStorPortProhibitedDIs, SpNoWait, StorPortStartIo

Weitere Informationen

ExAllocatePoolQuotaZero

ExAllocatePoolWithQuotaTag