ExAllocatePool3 函式 (wdm.h)
ExAllocatePool3 例程會配置指定類型的集區內存,並傳回所配置區塊的指標。 此例程類似於 ExAllocatePool2,但它會新增擴充參數。
語法
DECLSPEC_RESTRICT PVOID ExAllocatePool3(
POOL_FLAGS Flags,
SIZE_T NumberOfBytes,
ULONG Tag,
PCPOOL_EXTENDED_PARAMETER ExtendedParameters,
ULONG ExtendedParametersCount
);
參數
Flags
指定集區內存類型以及必要和選擇性屬性的ULONG64型別值。 多個旗標值可以使用位 OR 來結合。 如需可能的值,請參閱 POOL_FLAGS。
NumberOfBytes
指定要配置的位元組數目非零。
Tag
要用於已配置記憶體的集區標籤。 將集區標記指定為以單引號分隔之一到四個字元的非零字元常值(例如,Tag1
)。 字串通常會以反向順序指定(例如,1gaT
)。 標記中的每個 ASCII 字元都必須是範圍0x20(空格)中的值,才能0x7E(tilde)。 每個配置程式代碼路徑都應該使用唯一的集區標記來協助調試程式和驗證程式識別程式代碼路徑。
ExtendedParameters
指定配置之其他屬性之 POOL_EXTENDED_PARAMETER 結構的陣列指標。
ExtendedParametersCount
ULONG 值,指定 ExtendedParameters中的參數數目。
傳回值
ExAllocatePool3 會傳回已配置記憶體的指標。
下列條件會導致函式預設傳回NULL。 如果指定 POOL_FLAG_RAISE_ON_FAILURE,函式會引發例外狀況。
- 記憶體不足
- 標記 設定為 0 或指定無效的POOL_FLAGS
- 無效的 POOL_EXTENDED_PARAMETER 結構
言論
如果您要建置以 Windows 10 版本 2004 之前的 Windows 版本為目標的驅動程式,請使用 ExAllocatePoolPriorityZero 或 ExAllocatePoolPriorityUninitialized。
如需詳細資訊,請參閱 ExAllocatePool2 的備註。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 版本 2004 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (請參閱一節) |
DDI 合規性規則 | HwStorPortProhibitedDDIs、SpNoWait、StorPortStartIo |