次の方法で共有


ExCreatePool 関数 (wdm.h)

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 の