Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
aviso C30032: Chamando uma função de alocação de memória e forçando a solicitação de memória executável através 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, então você pode suprimir o aviso com Pragma Prefast para suprimir mensagens de aviso. Este tipo de alocação não é permitido em sistemas Windows 10 que optaram por proteções de memória adicionais.
Exemplo
O código a seguir gera esse aviso:
No ficheiro de códigos-fonte:
C_DEFINES=$(C_DEFINES) –DUNICODE -DPOOL_NX_OPTOUT=1
No arquivo de código:
pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);
O código a seguir evita esse aviso:
No arquivo de códigos-fonte, adicione:
C_DEFINES=$(C_DEFINES) -DUNICODE -DPOOL_NX_OPTIN_AUTO=1
No arquivo de código:
pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);