ExAllocatePoolQuotaUninitialized 関数 (wdm.h)
ExAllocatePoolQuotaUninitialized ルーチンはプール メモリを割り当て、現在のプロセスに対してクォータを充電します。
このルーチンは、 ExAllocatePoolWithQuotaTag のラッパーおよび置換オプションです。 機能に違いはありません。
構文
PVOID ExAllocatePoolQuotaUninitialized(
__drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
SIZE_T NumberOfBytes,
ULONG Tag
);
パラメーター
PoolType
割り当てるプール メモリの種類。 使用可能なプール メモリの種類の詳細については、「 POOL_TYPE」を参照してください。
同様に、 PoolType 値を変更するには、この値をビットごとの ORing を POOL_COLD_ALLOCATION フラグ (で定義 wdm.h
) をカーネルにヒントとして使用して、ページアウトされる可能性が高いページからメモリを割り当てることができます。 常駐プール メモリの量をできるだけ減らすには、これらの割り当てを頻繁に参照しないでください。 POOL_COLD_ALLOCATION フラグは、アドバイザリのみです。
NumberOfBytes
割り当てるバイト数。
Tag
割り当てられたメモリに使用するプール タグ。 単一引用符で区切られた 1 から 4 文字の 0 以外の文字リテラルとしてプール タグを指定します (例: Tag1
)。 文字列は通常、逆の順序で指定されます (例: 1gaT
)。 タグ内の各 ASCII 文字は、0x7E (チルダ) 0x20 (スペース) の範囲内の値である必要があります。 各割り当てコード パスでは、デバッガーと検証者がコード パスを識別するのに役立つ一意のプール タグを使用する必要があります。
戻り値
ExAllocatePoolQuotaUninitialized は、割り当てられたプールへのポインターを返します。
要求を満たすことができない場合、 exAllocatePoolQuotaUninitialized では、POOL_QUOTA_FAIL_INSTEAD_OF_RAISEが指定されていない限り例外が発生します。 パフォーマンス上の理由から、POOL_QUOTA_FAIL_INSTEAD_OF_RAISEを使用することをお勧めします。
注釈
このルーチンは、最初に I/O 要求を行ったプロセスのコンテキストで要求を満たすためにメモリを割り当てる最上位レベルのドライバーによって呼び出されます。 下位レベルのドライバーは、代わりに ExAllocatePoolUninitialized を呼び出します。
ExAllocatePoolQuotaUninitialized によって割り当てられるメモリが初期化されていません。 カーネル モード ドライバーは、このメモリをユーザー モード ソフトウェアに表示する場合は、まずこのメモリをゼロにする必要があります (特権を持つ可能性のあるコンテンツのリークを回避するため)
追加のガイダンスについては、「ExAllocatePoolWithQuotaTag」の「解説」セクションを参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 バージョン 2004 に WDK が必要です。 Windows 7 以降のバージョンの Windows オペレーティング システムを対象としています。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | IRQL <= DISPATCH_LEVEL (「解説」セクションを参照) |
DDI コンプライアンス規則 | HwStorPortProhibitedDIs、SpNoWait、StorPortStartIo |