警告 C30032: メモリ割り当て関数を呼び出し、POOL_NX_OPTOUT ディレクティブを使用して実行可能メモリの要求を強制する
BANNED_MEM_ALLOCATION_FORCE_UNSAFE
プリプロセッサ ディレクティブ POOL_NX_OPTOUT では、安全でない型 (MM_PAGE_PRIORITY と POOL_TYPE) を安全な型 (NonPagedPool から NonPagedPoolNx など) に自動昇格できなくなります。 ソースでのPOOL_NX_OPTOUTの使用は、設計によって行われる可能性があります。 これが仕様であり、実行可能メモリが必要な場合は、pragma Prefast を使用して警告 抑制し、警告メッセージを抑制できます。 この種類の割り当ては、追加のメモリ保護をオプトインした 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);