Sürücüleri Sayfalanabilir Hale Getirme

Bağlayıcı varsayılan olarak, sürücü görüntü dosyasının kod ve veri bölümlerine ".text" ve ".data" gibi adlar atar. Sürücü yüklendiğinde, G/Ç yöneticisi bu bölümleri sayfalanmamış hale getirir. Sayfalanmamış bir bölüm her zaman bellekte yerleşiktir.

Bir sürücü geliştiricisi, windows'un kullanımda olmayan bu bölümleri disk belleği dosyasına taşıyabilmesi için sürücünün belirlenen bölümlerini sayfalanabilir hale getirme seçeneğine sahiptir. Bir kod veya veri bölümünü sayfalanabilir hale getirmek için sürücü geliştiricisi bölüme "SAYFA" ile başlayan bir ad atar. G/Ç yöneticisi, bir sürücü yüklediğinde bölümlerin adlarını denetler. Bölüm adı "PAGE" ile başlıyorsa G/Ç yöneticisi bölümü sayfalanabilir hale getirir.

IRQL >= DISPATCH_LEVEL çalışan kodun bellekte yerleşik olması gerekir. Başka bir ifadeyle, bu kodun ya sayfalanamayan bir kesimde ya da bellekte kilitli olan sayfa belleğine alınabilir bir kesimde olması gerekir. IRQL >= DISPATCH_LEVEL üzerinde çalışan kod sayfa hatasına neden oluyorsa, hata denetimi gerçekleşir. Sürücüler, disk belleğine alınabilen işlevlerin yalnızca uygun IRQL'lerde çağrıldığını doğrulamak için PAGED_CODE makroyu kullanabilir.

Bir kod veya veri bölümü sayfalanabilirse, sürücü MmLockPagableCodeSection veya MmLockPagableDataSection yordamını çağırarak bölümü bellekte kilitleyebilir. Sürücü kilidini açmak için MmUnlockPagableImageSection yordamını çağırana kadar bölüm kilitli kalır. Sayfalanabilir bölüm kilitliyken, sayfalanmamış bir bölümle aynı şekilde davranır.

Kod ve veri bölümlerine ad atama hakkında bilgi için bkz . MmLockPagableCodeSection ve MmLockPagableDataSection.

Bu bölüm aşağıdaki konuları içerir:

Kod ve Veriler Ne Zaman Sayfalanabilir Olmalıdır?

Sürücü Kodunu veya Verileri Sayfalanabilir Hale Getirme