Freigeben über


FsRtlAllocatePoolWithQuotaTag-Makro (ntifs.h)

Die FsRtlAllocatePoolWithQuotaTag Routine weist poolspeicher, Ladekontingent für den aktuellen Prozess zu.

Syntax

void FsRtlAllocatePoolWithQuotaTag(
  [in]  PoolType,
  [in]  NumberOfBytes,
  [in]  Tag
);

Parameter

[in] PoolType

Typ des zuzuweisenden Pools. Eine der folgenden:

  • NonPagedPool-
  • PagedPool-
  • NonPagedPoolCacheAligned-
  • PagedPoolCacheAligned-

Die NonPagedPoolMustSucceed und NonPagedPoolCacheAlignedMustS Pooltypen sind veraltet und sollten nicht mehr verwendet werden.

[in] NumberOfBytes

Anzahl der zuzuordnenden Bytes.

[in] Tag

Gibt das Pooltag für den zugewiesenen Arbeitsspeicher an. Treiber geben das Pooltag normalerweise als Zeichenfolge von 1 bis vier 7-Bit-ASCII-Zeichen an, getrennt durch einfache Anführungszeichen (z. B. "abcd"). Dieser Parameter ist erforderlich und darf nicht null sein.

Rückgabewert

Nichts

Bemerkungen

Wenn ein Poolzuordnungsfehler auftritt, löst FsRtlAllocatePoolWithQuotaTag eine STATUS_INSUFFICIENT_RESOURCES Ausnahme aus. Um die Kontrolle zu erlangen, wenn dieser Poolzuweisungsfehler auftritt, sollte der Treiber den Aufruf von FsRtlAllocatePoolWithQuota Tag in einem try-except oder try-finally Anweisung umschließen.

Das System ordnet das vom Tag Parameter angegebene Pooltag dem zugeordneten Puffer zu. Programmiertools, z. B. der Windows-Debugger (WinDbg), können das Pooltag anzeigen, das jedem zugeordneten Puffer zugeordnet ist. Der Wert des Pooltags wird normalerweise in umgekehrter Reihenfolge angezeigt. Wenn beispielsweise ein Aufrufer "Fred" als Wert des Tag-Parameters übergibt, wird dieser Wert als "derF" angezeigt, wenn der Pool gedumpt wird oder wenn die Poolnutzung im Debugger nachverfolgt wird.

Weitere Informationen zur Speicherverwaltung finden Sie unter Speicherverwaltung.

Speicher, der FsRtlAllocatePoolWithQuotaTag zugeordnet wird, wird nicht initialisiert. Ein Kernelmodustreiber muss zuerst diesen Speicher null sein, wenn er für Software im Benutzermodus sichtbar macht (um zu vermeiden, dass potenziell privilegierte Inhalte verloren gehen).

Aufrufer von FsRtlAllocatePoolWithQuotaTag- müssen unter IRQL <= DISPATCH_LEVEL ausgeführt werden. Ein Aufrufer bei DISPATCH_LEVEL muss eine NonPaged****XxxPoolType-angeben. Andernfalls muss der Aufrufer unter IRQL-< DISPATCH_LEVEL ausgeführt werden.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= DISPATCH_LEVEL (siehe Abschnitt "Hinweise")

Siehe auch

ExAllocatePoolWithQuotaTag

ExFreePool-

FsRtlAllocatePoolWithQuota