NX 池启用机制

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

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

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

  • DriverEntry 例程调用内联函数。

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

在本节中

主题 说明

启用单个二进制文件: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选择加入机制结合使用。