ExAllocatePoolQuotaZero 函式 (wdm.h)
警告
Microsoft 注意到 ExAllocatePoolQuotaZero 的問題,可能會導致 Windows 10 1909 版無法零配置。此問題已在 2020 年 12 月 16 日 Windows 10 2004 版的 WD (Windows 10) K 安全性重新整理中修正。 如需下載最新 WDK 的資訊,請參閱 下載 Windows 驅動程式套件 (WDK) 。
此例程是 的包裝函式,以及 ExAllocatePoolWithQuotaTag 的建議取代選項。
ExAllocatePoolQuotaZero 會配置指定類型的集區內存,並傳回已配置區塊的指標。 它與 ExAllocatePoolWithQuotaTag 相同,但零會初始化配置的記憶體。 如果不需要,請改用 ExAllocatePoolQuotaUninitialized 。
語法
PVOID ExAllocatePoolQuotaZero(
__drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
SIZE_T NumberOfBytes,
ULONG Tag
);
參數
PoolType
要配置的集區內存類型。 如需可用集區內存類型的描述,請參閱 POOL_TYPE。
同樣地,您可以使用位 ORing 這個值與 POOL_COLD_ALLOCATION 旗標來修改 PoolType 值, (中也會) 定義為 wdm.h
核心的提示,以從可能快速分頁的頁面配置記憶體。 若要盡可能減少駐留集區內存的數量,您不應該經常參考這些配置。 POOL_COLD_ALLOCATION旗標只是諮詢。
NumberOfBytes
要配置的位元組數目。
Tag
要用於已配置記憶體的集區標籤。 將集區標記指定為一到四個字元的非零字元常值, Tag1
以單引號分隔 (例如,) 。 字串通常會以反向順序指定 (,例如, 1gaT
) 。 標記中的每個 ASCII 字元都必須是範圍0x20 (空格) 的值,才能0x7E (波浪) 。 每個配置程式代碼路徑都應該使用唯一的集區標籤,協助調試程式和驗證程式識別程式代碼路徑。
傳回值
ExAllocatePoolQuotaZero 會傳回配置集區的指標。
如果無法滿足要求,除非指定POOL_QUOTA_FAIL_INSTEAD_OF_RAISE,否則 ExAllocatePoolQuotaZero 會引發例外狀況。 基於效能考慮,最好使用 POOL_QUOTA_FAIL_INSTEAD_OF_RAISE。
備註
若要在 Windows 10 2004 版之前的 Windows 版本上執行,驅動程式必須先定義POOL_ZERO_DOWN_LEVEL_SUPPORT並呼叫 ExInitializeDriverRuntime,再呼叫此函式。
此例程是由最高層級驅動程式所呼叫,這些驅動程式會配置記憶體以滿足原本發出 I/O 要求之進程內容中的要求。 較低層級的驅動程式會改為呼叫 ExAllocatePoolZero 。
如需其他指引,請參閱 ExAllocatePoolWithQuotaTag 的一節。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 版本 2004 需要 WDK。 以 Windows 7 和更新版本的 Windows 作業系統為目標。 |
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (请参阅一节) |
DDI 合規性規則 | HwStorPortProhibitedDIS、SpNoWait、StorPortStartIo |