C30032
aviso C30032: chamar uma função de alocação de memória e forçar a solicitação de memória executável por meio do uso da diretiva POOL_NX_OPTOUT
BANNED_MEM_ALLOCATION_FORCE_UNSAFE
A diretiva de pré-processador POOL_NX_OPTOUT impede a promoção automática de tipos não seguros (MM_PAGE_PRIORITY e POOL_TYPE) para tipos seguros (por exemplo, NonPagedPool para NonPagedPoolNx). O uso de POOL_NX_OPTOUT em suas fontes provavelmente é por design. Se isso for por design e a memória executável for necessária, você poderá suprimir o aviso com Pragma Prefast para suprimir mensagens de aviso. Esse tipo de alocação não é permitido em sistemas Windows 10 que aceitaram proteções de memória adicionais.
Exemplo
O seguinte código gera esse aviso:
No arquivo de fontes:
C_DEFINES=$(C_DEFINES) –DUNICODE -DPOOL_NX_OPTOUT=1
no arquivo de código:
pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);
O código a seguir evita este aviso:
No arquivo de fontes, adicione:
C_DEFINES=$(C_DEFINES) -DUNICODE -DPOOL_NX_OPTIN_AUTO=1
no arquivo de código:
pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);