若要将内核模式驱动程序代码从早期版本的 Windows 移植到 Windows 8,应将 NonPagedPoolNx 类型的内存池用作最佳做法。 默认情况下,可以使用多种移植辅助工具之一轻松选择使用 NonPagedPoolNx 池类型。
这些移植工具使用以下一种或两种技术,以便驱动程序能够使用 NX 非分页池:
#define使用预处理器语句创建全局定义的宏名称。从 DriverEntry 例程调用内联函数。
对于大多数内核模式驱动程序代码,这些移植辅助功能使开发人员能够尽量少地更新驱动程序。
本部分内容
| 主题 | DESCRIPTION |
|---|---|
若要生成在 Windows 8 和早期版本的 Windows 中运行的单个驱动程序二进制文件,请使用POOL_NX_OPTIN选择加入机制。 这是第三方硬件供应商的移植援助,提供单个驱动程序二进制文件来支持多个 Windows 版本。 |
|
如果你是为不同版本的 Windows 提供不同驱动程序二进制文件的硬件供应商,则可以使用POOL_NX_OPTIN_AUTO选择加入机制。 此移植助手为 Windows 8 和驱动程序支持的每个早期版本的 Windows 生成单独的驱动程序二进制文件。 |
|
可以全局启用一组驱动程序源文件的未执行(NX)池选择加入机制,然后使用POOL_NX_OPTOUT覆盖一个或多个所选源文件的此选择加入机制。 这样,所选源文件就可以继续使用可执行的非分页内存。 可以将POOL_NX_OPTOUT选择退出机制与POOL_NX_OPTIN或POOL_NX_OPTIN_AUTO选择加入机制一起使用。 |