Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
IRP_MJ_CREATE ve IRP_MJ_CLOSE istekleri için bir sürücünün Dağıtım yordamları, STATUS_SUCCESS ile giriş IRP'sini tamamlamaktan başka bir şey yapamaz. Daha fazla bilgi için bkz. IRP'leri Tamamlama.
IRP_MJ_CREATE ve IRP_MJ_CLOSE istekleri için başka bir sürücünün Dağıtma yordamları, temel alınan cihaz sürücüsüne veya temel alınan cihaza bağlı olarak daha fazla iş yapabilir. Aşağıdaki senaryoları göz önünde bulundurun:
Oluşturma isteği alındıktan sonra, sınıf sürücüsü bir iç kuyruk başlatabilir ve cihaz yapılandırma bilgileri veya denetleyici bağlantı noktasına özel erişim isteyen ilgili bağlantı noktası sürücüsüne bir IRP_MJ_INTERNAL_DEVICE_CONTROL isteği gönderebilir.
IRP_MJ_CLOSE alındı bilgisi, hedef cihaz nesnesiyle ilişkili dosya nesnesine yapılan son başvurunun kaldırıldığını gösterir. Bu, dosya nesnesine yönelik tüm tanıtıcıların kapatıldığını ve bekleyen tüm G/Ç isteklerinin tamamlandığını veya iptal edildiğini gösterir.
Oluşturma isteğinin alınması üzerine, seyrek kullanılan bir cihazın sürücüsü, diğer IRP_MJ_XXX isteklerini işleyen sürücü yordamlarından bazılarını yerleşik hale getirmek için MmLockPagableCodeSection'ı çağırabilir. Karşılıklı bir kapatma talebi alındıktan sonra, sürücü, bu tür bir sürücünün cihaz nesneleri için tüm dosya nesnesi tanıtıcıları kapatıldığında, disk belleğine alınabilir görüntü bölümünü sayfaya alarak sistem belleğinden tasarruf etmek amacıyla MmUnlockPagableImageSection'ı çağırabilir.
Bazı sürücüler IRP_MJ_CLOSE isteklerini yalnızca simetri için işler çünkü cihaz nesneleri korumalı bir alt sistem veya daha üst düzey bir sürücü tarafından açıldıktan sonra, alt düzey sürücülerin cihaz nesneleri sistem kapatılana kadar kapatılmaz. Örneğin, klavye ve fare sürücüleri sistem çalışırken işlevsel olması gereken fiziksel cihazları temsil eden cihaz nesnelerini ayarlar, bu nedenle bu sürücülerin simetri için en düşük DispatchClose yordamları olabilir veya DispatchCreateClose yordamlarını birleştirmiş olabilirler.
Sistemin çalışmaya devam etmesi için alt düzey bir sürücü tarafından denetlenen cihazın kullanılabilir olması gerekiyorsa, sürücünün DispatchClose yordamı genellikle çağrılmaz. Örneğin, bazı sistem disk sürücülerinin DispatchClose yordamı yoktur, ancak bu sürücülerin sistem kapatılmadan önce bekleyen dosya G/Ç işlemlerini tamamlamak için genellikle DispatchFlushBuffers ve DispatchShutdown yordamları vardır.
Ayrı DRIVER_DISPATCH ve DispatchClose yordamları uygulayabilirsiniz ancak sürücülerin bazen hem oluşturma hem de kapatma isteklerini işlemek için tek bir DispatchCreateClose yordamı vardır.