ExAllocatePoolQuotaUninitialized 函式 (wdm.h)
ExAllocatePoolQuotaUninitialized 例程會配置集區內存,並針對目前的進程收取配額。
此例程是 ExAllocatePoolWithQuotaTag的包裝函式和取代選項。 功能沒有差異。
語法
PVOID ExAllocatePoolQuotaUninitialized(
__drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
SIZE_T NumberOfBytes,
ULONG Tag
);
參數
PoolType
要配置的集區內存類型。 如需可用集區內存類型的描述,請參閱 POOL_TYPE。
同樣地,您可以使用 POOL_COLD_ALLOCATION 旗標來修改 PoolType 值 wdm.h
,做為核心的提示,從可能快速分頁的頁面配置記憶體。 若要盡可能減少常駐集區內存的數量,您不應該經常參考這些配置。
POOL_COLD_ALLOCATION 旗標只是諮詢。
NumberOfBytes
要配置的位元元組數目。
Tag
要用於已配置記憶體的集區標籤。 將集區標記指定為以單引號分隔之一到四個字元的非零字元常值(例如,Tag1
)。 字串通常會以反向順序指定(例如,1gaT
)。 標記中的每個 ASCII 字元都必須是範圍0x20(空格)中的值,才能0x7E(tilde)。 每個配置程式代碼路徑都應該使用唯一的集區標記來協助調試程式和驗證程式識別程式代碼路徑。
傳回值
ExAllocatePoolQuotaUninitialized 會傳回配置集區的指標。
如果無法滿足要求,除非指定POOL_QUOTA_FAIL_INSTEAD_OF_RAISE,否則 ExAllocatePoolQuotaUninitialized 會引發例外狀況。 基於效能考慮,最好使用POOL_QUOTA_FAIL_INSTEAD_OF_RAISE。
言論
此例程是由配置記憶體以在原本提出 I/O 要求之進程內容中滿足要求的高階驅動程式所呼叫。 較低層級的驅動程式 會改為呼叫exAllocatePoolUninitialized。
ExAllocatePoolQuotaUninitialized 配置的記憶體未初始化。 如果核心模式驅動程式要讓使用者模式軟體看到記憶體,則核心模式驅動程序必須先將這個記憶體設為零(以避免洩漏潛在的特殊許可權內容)
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 需要適用於 Windows 10 版本 2004 的 WDK。 以 Windows 7 和更新版本的 Windows作系統為目標。 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | IRQL <= DISPATCH_LEVEL (請參閱一節) |
DDI 合規性規則 | HwStorPortProhibitedDDIs、SpNoWait、StorPortStartIo |