NX 池启用机制

若要将内核模式驱动程序代码从早期版本的 Windows 移植到 Windows 8,应将 NonPagedPoolNx 类型的内存池用作最佳做法。 默认情况下,可以使用多种移植辅助工具之一轻松选择使用 NonPagedPoolNx 池类型。

这些移植工具使用以下一种或两种技术,以便驱动程序能够使用 NX 非分页池:

  • #define使用预处理器语句创建全局定义的宏名称。

  • DriverEntry 例程调用内联函数。

对于大多数内核模式驱动程序代码,这些移植辅助功能使开发人员能够尽量少地更新驱动程序。

本部分内容

主题 DESCRIPTION

单二进制选择加入:POOL_NX_OPTIN

若要生成在 Windows 8 和早期版本的 Windows 中运行的单个驱动程序二进制文件,请使用POOL_NX_OPTIN选择加入机制。 这是第三方硬件供应商的移植援助,提供单个驱动程序二进制文件来支持多个 Windows 版本。

多重二进制选择加入:POOL_NX_OPTIN_AUTO

如果你是为不同版本的 Windows 提供不同驱动程序二进制文件的硬件供应商,则可以使用POOL_NX_OPTIN_AUTO选择加入机制。 此移植助手为 Windows 8 和驱动程序支持的每个早期版本的 Windows 生成单独的驱动程序二进制文件。

选择性选择退出:POOL_NX_OPTOUT

可以全局启用一组驱动程序源文件的未执行(NX)池选择加入机制,然后使用POOL_NX_OPTOUT覆盖一个或多个所选源文件的此选择加入机制。 这样,所选源文件就可以继续使用可执行的非分页内存。 可以将POOL_NX_OPTOUT选择退出机制与POOL_NX_OPTIN或POOL_NX_OPTIN_AUTO选择加入机制一起使用。