次の方法で共有


C30032

警告 C30032: メモリ割り当て関数を呼び出し、POOL_NX_OPTOUT ディレクティブを使用して実行可能メモリの要求を強制する

BANNED_MEM_ALLOCATION_FORCE_UNSAFE

プリプロセッサ ディレクティブ POOL_NX_OPTOUT では、安全でない型 (MM_PAGE_PRIORITYPOOL_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);