Compartilhar via


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);