共用方式為


C30032

警告 C30032:呼叫記憶體配置函式,並透過使用 POOL_NX_OPTOUT 指示詞強制要求可執行記憶體

BANNED_MEM_ALLOCATION_FORCE_UNSAFE

預處理器指示詞POOL_NX_OPTOUT可防止非安全型別 (MM_PAGE_PRIORITY 自動升級,並將POOL_TYPE) (例如 NonPagedPool 到 NonPagedPoolNx) 。 在您的來源中使用POOL_NX_OPTOUT可能是設計方式。 如果這是設計所需的可執行記憶體,則可以使用 Pragma 預製來隱藏警告訊息。 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);