No-Execute (NX) 非分頁集區
最佳做法是,Windows 8和更新版本的 Windows 驅動程式應該從無執行 (NX) 非分頁集區配置大部分或所有非分頁式記憶體。 藉由從 NX 非分頁集區配置記憶體,核心模式驅動程式可藉由防止惡意軟體在此記憶體中執行指令來改善安全性。
從Windows 8開始,核心模式驅動程式可以從 NX 非分頁式記憶體集區配置記憶體。 此集區是由一般用途、核心模式記憶體配置器所管理,其運作方式類似于使用者模式 Win32 堆積配置器。 此集區中的記憶體為 NX 和非分頁。 x86、x64 和 Arm 處理器架構可讓記憶體頁面指定為 NX,以防止在這些頁面中執行指令。 一般而言,核心模式驅動程式會使用配置自非分頁集區的記憶體來儲存資料,而且不需要執行此記憶體中的指令。
支援舊版驅動程式
在 Windows 7 和舊版的 Windows 中,從非分頁集區配置的所有記憶體都是可執行檔。 為了鼓勵移植這些驅動程式在Windows 8和更新版本的 Windows 中使用 NX 非分頁集區,Microsoft 提供數種加入宣告機制,讓開發人員以最少的心力更新其驅動程式。 如需詳細資訊,請參閱 NX 集區Opt-In機制。
為了回溯相容性,在 Windows 7 和舊版 Windows 上執行的驅動程式二進位檔,以及從可執行檔非分頁集區配置記憶體的驅動程式二進位檔,將會在Windows 8和更新版本的 Windows 上執行,而不需修改。 不過,這些驅動程式不會利用 NX 非分頁集區的改良安全性。