No-Execute (NX) Kumpulan Yang Tidak Disebarkan

Sebagai praktik terbaik, driver untuk versi Windows Windows 8 dan yang lebih baru harus mengalokasikan sebagian besar atau semua memori yang tidak di-patahkan dari kumpulan non-eksekusi (NX) yang tidak dieksekusi. Dengan mengalokasikan memori dari kumpulan NX yang tidak disebarkan, driver mode kernel meningkatkan keamanan dengan mencegah perangkat lunak berbahaya menjalankan instruksi dalam memori ini.

Dimulai dengan Windows 8, driver mode kernel dapat mengalokasikan memori dari kumpulan memori NX yang tidak disebarkan. Kumpulan ini dikelola oleh alokator memori mode kernel tujuan umum yang beroperasi mirip dengan alokator heap Win32 mode pengguna. Memori dalam kumpulan ini adalah NX dan tidak disebarkan. Arsitektur prosesor x86, x64, dan Arm memungkinkan halaman memori ditetapkan sebagai NX untuk mencegah eksekusi instruksi di halaman-halaman ini. Biasanya, driver mode kernel menggunakan memori yang dialokasikan dari kumpulan yang tidak disebarkan untuk menyimpan data, dan tidak memerlukan kemampuan untuk menjalankan instruksi dalam memori ini.

Dukungan untuk Driver Warisan

Di Windows 7 dan versi Windows yang lebih lama, semua memori yang dialokasikan dari kumpulan yang tidak di-expaged dapat dieksekusi. Untuk mendorong porting driver ini untuk menggunakan kumpulan NX yang tidak disebarkan di windows versi Windows 8 dan yang lebih baru, Microsoft menyediakan beberapa mekanisme keikutsertaan untuk memungkinkan pengembang memperbarui driver mereka dengan upaya minimal. Untuk informasi selengkapnya, lihat Mekanisme Opt-In Kumpulan NX.

Untuk kompatibilitas mundur, biner driver yang berjalan pada Windows 7 dan versi Windows yang lebih lama, dan yang mengalokasikan memori dari kumpulan nonpaged yang dapat dieksekusi, akan berjalan pada versi Windows Windows 8 dan yang lebih baru tanpa modifikasi. Namun, driver ini tidak memanfaatkan peningkatan keamanan kumpulan NX yang tidak disebarkan.