ExCreatePool 會建立所要求類型的集區實例。
語法
NTSTATUS ExCreatePool(
ULONG Flags,
ULONG_PTR Tag,
POOL_CREATE_EXTENDED_PARAMS *Params,
HANDLE *PoolHandle
);
參數
Flags
[in]指定集區類型和選擇性建立選項的位掩碼。 必須指定一個集區類型旗標。 下列值互斥:
| 價值 | 說明 |
|---|---|
| POOL_CREATE_FLG_SECURE_POOL | 建立安全集區實例。 使用這個旗標時,不得提供集區名稱。 |
| POOL_CREATE_FLG_PAGED_POOL | 建立私人分頁集區實例。 集區名稱必須透過擴充參數提供。 配置可能位於可分頁記憶體中。 |
| POOL_CREATE_FLG_NONPAGED_POOL | 建立私人非分頁集區實例。 集區名稱必須透過擴充參數提供。 配置會保留在非分頁記憶體中。 |
Tag
[in]標記 (以小端形式儲存的四個字元值),以與集區產生關聯。
Params
[in, 選擇性]提供指定集區類型的擴充建立參數 之POOL_CREATE_EXTENDED_PARAMS 結構的指標。 此參數可以是 NULL。 可能會提供名稱參數,但受限於下列規則:分頁和非分頁集區的必要專案;安全集區不允許;只允許一個 name 參數;不支持的參數類型會遭到拒絕。
PoolHandle
[out]在成功時接收新建立集區的不透明句柄。
返回值
傳回 NTSTATUS 值,例如下列其中一個值。
| 回傳碼 | 說明 |
|---|---|
| STATUS_SUCCESS | 成功建立集區且 PoolHandle 有效。 |
| STATUS_INVALID_PARAMETER_1 | Flags 中的集區類型規格無效。 |
| STATUS_INVALID_PARAMETER_3 | 擴充參數無效(缺少必要的名稱、不允許的名稱、重複的名稱或不支援的參數類型)。 |
| 其他狀態代碼 | 建立期間發生錯誤。 |
備註
ExCreatePool 會建立所要求類型的集區實例(安全、分頁或非分頁),並傳回可搭配集區管理例程使用的不透明句柄。 呼叫端會透過旗標指定集區類型,並提供選擇性的擴充參數。
旗標中必須有一個集區類型旗標。 分頁和非分頁集區需要集區名稱,且必須省略安全集區。
當所選集區類型不需要名稱時,擴充參數是選擇性的。 當不再需要時,應該使用適當的集區管理例程來釋放傳回的句柄。
集區配置是藉由呼叫 ExAllocatePool2 來完成。
要求
| 要求 | 價值 |
|---|---|
| 支援的最低伺服器 | Windows Server 2022 |
| 標頭 | wdm.h (包括 Wdm.h) |
| IRQL | PASSIVE_LEVEL |
另請參閱
POOL_CREATE_EXTENDED_PARAMS