共用方式為


FsRtlAllocatePoolWithTag 宏 (ntifs.h)

FsRtlAllocatePoolWithTag 例程配置集區內存。

語法

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

參數

[in] PoolType

要配置的集區類型。 下列其中一項:

  • NonPagedPool
  • PagedPool
  • NonPagedPoolCacheAligned
  • PagedPoolCacheAligned

NonPagedPoolMustSucceedNonPagedPoolCacheAlignedMustS 集區類型已過時,不應再使用。

[in] NumberOfBytes

要配置的位元元組數目。 這是必要參數,不能為零。

[in] Tag

指定配置記憶體的集區標記。 驅動程式通常會將集區標記指定為一到四個 7 位 ASCII 字元的字串,並以單引號分隔(例如 'abcd')。 這是必要參數,不能為零。

傳回值

沒有

言論

如果集區配置失敗,FsRtlAllocatePoolWithTag 引發STATUS_INSUFFICIENT_RESOURCES例外狀況。 若要控制此集區配置失敗是否發生,驅動程式應該在 try- finally 語句 中包裝呼叫 FsRtlAllocatePoolWithTag

系統會將 Tag 參數所指定的集區標記與配置的緩衝區產生關聯。 Windows 調試程式 (WinDbg) 等程式設計工具可以顯示與每個已配置緩衝區相關聯的集區標記。 集區標籤的值通常會以反向順序顯示。 例如,如果呼叫端傳遞 『Fred』 做為 Tag 參數的值,則如果傾印集區,或追蹤調試程式中的集區使用量時,這個值會顯示為 『derF』。

如需記憶體管理的詳細資訊,請參閱 記憶體管理

FsRtlAllocatePoolWithTag 配置的記憶體未初始化。 如果核心模式驅動程式要讓使用者模式軟體看到記憶體,則核心模式驅動程序必須先將這個記憶體設為零(以避免洩漏潛在的特殊許可權內容)。

FsRtlAllocatePoolWithTag 的呼叫端必須在 IRQL <= DISPATCH_LEVEL執行。 DISPATCH_LEVEL的呼叫端必須指定 NonPagedXxxPoolType。 否則,呼叫端必須在 IRQL <= APC_LEVEL執行。

要求

要求 價值
目標平臺 普遍
標頭 ntifs.h (include Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (請參閱一節)

另請參閱

ExAllocatePoolWithTag

ExFreePool