次の方法で共有


ExAllocatePoolPriorityUninitialized 関数 (wdm.h)

このルーチンは、 ExAllocatePoolWithTagPriority のラッパーおよび置換オプションです。

ExAllocatePoolPriorityUninitialized は、指定された型のプール メモリを割り当てます。

構文

PVOID ExAllocatePoolPriorityUninitialized(
  __drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
  SIZE_T                                         NumberOfBytes,
  ULONG                                          Tag,
  EX_POOL_PRIORITY                               Priority
);

パラメーター

PoolType

割り当てるプール メモリの種類。 使用可能なプール メモリの種類の詳細については、「 POOL_TYPE」を参照してください。

で定義されている POOL_RAISE_IF_ALLOCATION_FAILURE フラグを使用してビットごとの OR を実行することで、列挙値を wdm.h変更できます。 このフラグを指定すると、要求を満たすことができない場合に例外が発生します。 このフラグはコストがかかるため、このフラグの使用はお勧めしません。

同様に、 PoolType 値を変更するには、この値をビットごとの ORing を POOL_COLD_ALLOCATION フラグ (で定義 wdm.h) をカーネルにヒントとして使用して、ページアウトされる可能性が高いページからメモリを割り当てることができます。 常駐プール メモリの量をできるだけ減らすには、これらの割り当てを頻繁に参照しないでください。 POOL_COLD_ALLOCATION フラグは、アドバイザリのみです。

NumberOfBytes

割り当てるバイト数。

Tag

割り当てられたメモリに使用するプール タグ。 詳細については、 ExAllocatePoolWithTag の Tag パラメーターを参照してください。

Priority

この要求の優先順位を指定する EX_POOL_PRIORITY 列挙値。

戻り値

ExAllocatePoolPriorityUninitialized は、POOL_RAISE_IF_ALLOCATION_FAILUREが指定されていない限り、要求を満たすために空きプールに十分なメモリがない場合に NULL を返します。 それ以外の場合、ルーチンは割り当てられたメモリへのポインターを返します。

注釈

ExAllocatePoolPriorityUninitialized によって割り当てられるメモリが初期化されていません。 カーネル モード ドライバーは、このメモリをユーザー モード ソフトウェアに表示する場合は、まずこのメモリをゼロにする必要があります (特権を持つ可能性のあるコンテンツのリークを回避するため)

その他のガイダンスについては、「ExAllocatePoolWithTagPriority」の「解説」セクションを参照してください。

要件

要件
サポートされている最小のクライアント Windows 10 バージョン 2004 に WDK が必要です。 Windows 7 以降のバージョンの Windows オペレーティング システムを対象としています。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (「解説」セクションを参照)
DDI コンプライアンス規則 HwStorPortProhibitedDDIs、IrqlExAllocatePool、IrqlExFree2、SpNoWait、StorPortStartIo

こちらもご覧ください

ExAllocatePoolWithTagPriority

ExAllocatePoolPriorityZero