Freigeben über


ExAllocatePoolQuotaUninitialized-Funktion (wdm.h)

Die ExAllocatePoolQuotaUninitialized Routine weist Poolspeicher zu, wobei das Kontingent für den aktuellen Prozess geladen wird.

Diese Routine ist eine Wrapper- und Ersetzungsoption 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 zuzuweisenden Poolspeichers. Eine Beschreibung der verfügbaren Poolspeichertypen finden Sie unter POOL_TYPE.

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. Geben Sie das Pooltag als Nicht-Null-Zeichenliteral von 1 bis vier Zeichen an, die durch einfache Anführungszeichen (z. B. Tag1) getrennt sind. 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 0x7E. Jeder Zuordnungscodepfad sollte ein eindeutiges Pooltag verwenden, um Debuggern und Prüfern bei der Identifizierung 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 ist angegeben. Die Verwendung von POOL_QUOTA_FAIL_INSTEAD_OF_RAISE wird aus Leistungsgründen bevorzugt.

Bemerkungen

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

Speicher, der ExAllocatePoolQuotaUninitialized zugewiesen wird, ist 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 HinweiseExAllocatePoolWithQuotaTag.

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

Siehe auch

ExAllocatePoolQuotaZero

ExAllocatePoolWithQuotaTag