ExCreatePool は、要求された型のプール インスタンスを作成します。
構文
NTSTATUS ExCreatePool(
ULONG Flags,
ULONG_PTR Tag,
POOL_CREATE_EXTENDED_PARAMS *Params,
HANDLE *PoolHandle
);
パラメーター
Flags
[in]プールの種類とオプションの作成オプションを指定するビットマスク。 プールの種類のフラグを 1 つだけ指定する必要があります。 次の値は相互に排他的です。
| 価値 | 説明 |
|---|---|
| POOL_CREATE_FLG_SECURE_POOL | セキュリティで保護されたプール インスタンスを作成します。 このフラグを使用する場合は、プール名を指定しないでください。 |
| POOL_CREATE_FLG_PAGED_POOL | プライベート ページ プール インスタンスを作成します。 プール名は、拡張パラメーターを使用して指定する必要があります。 割り当ては、ページング可能なメモリ内に存在する可能性があります。 |
| POOL_CREATE_FLG_NONPAGED_POOL | 非ページ プール のプライベート インスタンスを作成します。 プール名は、拡張パラメーターを使用して指定する必要があります。 割り当ては、非ページ メモリに保持されたままです。 |
Tag
[in]プールに関連付けるタグ (リトル エンディアン形式で格納された 4 文字の値)。
Params
[入力、省略可能]指定したプールの種類の拡張作成パラメーターを提供する POOL_CREATE_EXTENDED_PARAMS 構造体へのポインター。 このパラメーターには NULL を指定できます。 name パラメーターは、次の規則に従って指定できます。ページ プールと非ページ プールに必要です。セキュリティで保護されたプールでは許可されていません。許可される名前パラメーターは 1 つだけです。サポートされていないパラメーター型は拒否されます。
PoolHandle
[out]成功すると、新しく作成されたプールへの不透明なハンドルを受け取ります。
戻り値
次のいずれかの値のような NTSTATUS 値を返します。
| リターン コード | 説明 |
|---|---|
| STATUS_SUCCESS | 正常に作成されたプールと PoolHandle が有効です。 |
| STATUS_INVALID_PARAMETER_1 | Flags のプールの種類の指定が無効でした。 |
| STATUS_INVALID_PARAMETER_3 | 拡張パラメーターが無効です (必須の名前、許可されていない名前、重複する名前、またはサポートされていないパラメーター型がありません)。 |
| その他の状態コード | 作成中にエラーが発生しました。 |
注釈
ExCreatePool は、要求された型 (セキュア、ページング、または非ページ) のプール インスタンスを作成し、プール管理ルーチンで使用できる不透明なハンドルを返します。 呼び出し元は、フラグを使用してプールの種類を指定し、オプションの拡張パラメーターを指定できます。
Flags には、プールの種類のフラグが 1 つだけ存在する必要があります。 ページ プールと非ページ プールにはプール名が必要であり、セキュリティで保護されたプールの場合は省略する必要があります。
選択したプールの種類で名前が不要な場合、拡張パラメーターは省略可能です。 返されるハンドルは、不要になったら、適切なプール管理ルーチンを使用して解放する必要があります。
プールの割り当ては、 ExAllocatePool2 を呼び出すことによって行われます。
必要条件
| 要件 | 価値 |
|---|---|
| サポートされる最小サーバー | Windows Server 2022 |
| ヘッダー | wdm.h (Wdm.h を含む) |
| IRQL | PASSIVE_LEVEL |
こちらも参照ください
POOL_CREATE_EXTENDED_PARAMS
ExAllocatePool2の
ExFreePool2 の