Partilhar via


No-Execute (NX) Pool não paginado

Como prática recomendada, os drivers para Windows 8 e versões posteriores do Windows devem alocar a maior parte ou toda a memória não paginada do pool não paginado no-execute (NX). Ao alocar memória do pool não paginado do NX, um driver de modo kernel melhora a segurança, impedindo que softwares mal-intencionados executem instruções nessa memória.

A partir do Windows 8, os drivers em modo kernel podem alocar memória a partir de um pool de memória não paginada NX. Esse pool é gerenciado por um alocador de memória de modo kernel de uso geral que opera de forma semelhante ao alocador de heap Win32 de modo de usuário. A memória neste pool é NX e não paginada. As arquiteturas de processador x86, x64 e Arm permitem que as páginas de memória sejam designadas como NX para impedir a execução de instruções nessas páginas. Normalmente, um driver de modo kernel usa memória alocada do pool não paginado para armazenar dados e não requer a capacidade de executar instruções nessa memória.

Suporte para drivers legados

No Windows 7 e versões anteriores do Windows, toda a memória alocada do pool não paginado é executável. Para incentivar a portabilidade desses drivers para usar o pool não paginado NX no Windows 8 e versões posteriores do Windows, a Microsoft fornece vários mecanismos de aceitação para permitir que os desenvolvedores atualizem seus drivers com o mínimo de esforço. Para obter mais informações, consulte Mecanismos de Pool Opt-In do NX.

Para compatibilidade com versões anteriores, os binários de driver executados no Windows 7 e em versões anteriores do Windows, e que alocam memória do pool executável não paginado, serão executados no Windows 8 e em versões posteriores do Windows sem modificação. No entanto, esses drivers não aproveitam a segurança aprimorada do pool não paginado do NX.