FsRtlAllocatePoolWithQuotaTag-Makro (ntifs.h)

Die FsRtlAllocatePoolWithQuotaTag-Routine weist Poolspeicher zu, wobei das Kontingent für den aktuellen Prozess abgerechnet wird.

Syntax

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

Parameter

[in] PoolType

Typ des zuzuordnenden Pools. Einer der folgenden:

  • NonPagedPool
  • PagedPool
  • NonPagedPoolCacheAligned
  • PagedPoolCacheAligned

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

[in] NumberOfBytes

Anzahl der zuzuordnenden Bytes.

[in] Tag

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

Rückgabewert

Keine

Bemerkungen

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

Das System ordnet das vom Tag-Parameter angegebene Pooltag dem zugeordneten Puffer zu. Programmiertools wie 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 ein Aufrufer beispielsweise "Fred" als Wert des Tag-Parameters übergibt, wird dieser Wert als "derF" angezeigt, wenn der Pool dumped wird oder wenn die Poolnutzung im Debugger nachverfolgt wird.

Weitere Informationen zur Speicherverwaltung finden Sie unter Speicherverwaltung.

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

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

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (siehe Abschnitt "Hinweise")

Weitere Informationen

ExAllocatePoolWithQuotaTag

ExFreePool

FsRtlAllocatePoolWithQuota