C30032
警告 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);