C30032
警告 C30032: メモリ割り当て関数を呼び出し、POOL_NX_OPTOUT ディレクティブを使用して実行可能なメモリの要求を強制する
BANNED_MEM_ALLOCATION_FORCE_UNSAFE
プリプロセッサ ディレクティブ POOL_NX_OPTOUT では、安全でない型 (MM_PAGE_PRIORITY および POOL_TYPE) を安全な型 (NonPagedPool to NonPagedPoolNx など) に自動昇格できなくなります。 ソースでの POOL_NX_OPTOUT の使用は、設計によって行われる可能性があります。 これが仕様であり、実行可能なメモリが必要な場合は、Pragma Prefast to Suppress Warning Messages で警告を抑制することができます。 この種類の割り当ては、追加のメモリ保護をオプトインした Windows 10 システムでは許可されません。
例
この警告が発生するコード例を次に示します。
ソース ファイル内:
C_DEFINES=$(C_DEFINES) –DUNICODE -DPOOL_NX_OPTOUT=1
コード ファイル内:
pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);
次のコードでは、この警告が回避されます。
ソース ファイルで、次の処理を追加します。
C_DEFINES=$(C_DEFINES) -DUNICODE -DPOOL_NX_OPTIN_AUTO=1
コード ファイル内:
pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);