次の方法で共有


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

割り当てる 0 以外のバイト数を指定します。

Tag

割り当てられたメモリに使用するプール タグ。 単一引用符で区切られた 1 ~ 4 文字の 0 以外の文字リテラルとしてプール タグを指定します (例: Tag1)。 通常、文字列は逆の順序で指定されます (たとえば、1gaT)。 タグ内の各 ASCII 文字は、0x7E (チルダ) 0x20 (スペース) の範囲内の値である必要があります。 各割り当てコード パスでは、デバッガーと検証ツールがコード パスを識別するのに役立つ一意のプール タグを使用する必要があります。

ExtendedParameters

割り当ての追加属性を指定する POOL_EXTENDED_PARAMETER 構造体の配列へのポインター。

ExtendedParametersCount

ExtendedParameters 内のパラメーターの数指定する ULONG 値です。

戻り値

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 コンプライアンス規則 する HwStorPortProhibitedDIs、SpNoWait、StorPortStartIo

関連項目

ExAllocatePool2