共用方式為


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 非分頁集區所提供的更高安全性。