Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
предупреждение 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 для подавления предупреждений. Этот тип выделения не разрешен в системах 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);