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.
Sürücüler aşağıdaki dağıtım yordamlarını içerebilir:
-
IRP_MJ_CLEANUP , hedef cihaz nesnesiyle ilişkilendirilmiş bir dosya nesnesi için son tanıtıcının kapatıldığını gösterir. Dosya nesnesi için bekleyen G/Ç istekleri hala mevcut olabilir. Sürücüler, belirli bir dosya tanıtıcısına özgü olmayan temizleme işlemleri gerçekleştirmek için DispatchCleanup yordamı uygulayabilir. Sürücüler aynı amaçla DispatchClose yordamlarını da kullanabilir.
DispatchQueryInformation, DispatchSetInformation
Bazı en üst düzey sürücülerin IRP_MJ_QUERY_INFORMATION ve IRP_MJ_SET_INFORMATION IRP'leri işlemesi gerekebilir. Bu tür istekler, bir kullanıcı modu uygulaması, çekirdek modu bileşeni veya sürücünün; kullanıcı modu istek sahibinin tanıtıcısına sahip olduğu dosya nesnesinin (sürücünün cihaz nesnesini temsil eden) uzunluğu hakkında bilgi talep ettiğini veya kullanıcı modu isteğinde bulunanın bu dosya nesnesinin sonunu ayarlamaya çalıştığını gösterir.
Paralel sınıf ve seri cihaz sürücüleri, FILE_STANDARD_INFORMATION veya FILE_POSITION_INFORMATION uzunluğunu veya konumunu sıfır olarak ayarlayarak bu istekleri işler. Özellikle kullanıcı modu uygulaması veya çekirdek modu sürücüsü dosya nesnesini işlemek için C çalışma zamanı işlevlerini çağırabilirse, diğer en üst düzey cihaz sürücüleri bu istekleri desteklemelidir. Dosya sistemi sürücüleri bu istekleri bu en üst düzey cihaz sürücülerinden daha fazla desteklemelidir.
-
Bir cihazdaki verileri önbelleğe alan veya verileri sürücüye ayrılmış belleğe dahili olarak arabelleğe alan bir sürücü IRP_MJ_FLUSH_BUFFERS alabilir. Bu isteğin alınması, sürücünün arabelleğe alınmış verileri yazması, önbellekteki verileri cihaza aktarması veya cihazdan okunan arabelleğe alınmış veya önbellekteki verileri silmesi gerektiğini belirtir.
Örneğin, cihazlarından gelen giriş verileri için iç halka arabellekleri bulunan sistem klavyesi ve fare sınıfı sürücüleri, bellek temizleme talebini desteklerler. Yığın depolama cihazlarının sürücüleri ve üzerindeki sürücüler de bu isteği destekler.
-
Sistem kapanmadan önce çağrılma olasılığı olan herhangi bir sürücü IRP_MJ_SHUTDOWN işlemelidir. DispatchShutdown rutini, güç yöneticisi sistemi kapatmak için sistem gücü ayarlama IRP'si göndermeden önce, sürücü tarafından belirlenen gerekli temizlemeyi gerçekleştirmelidir. Sürücü kapatma bildirimine kaydolmak için IoRegisterShutdownNotification veya IoRegisterLastChanceShutdownNotification çağrısı yapabilir.
Yığın depolama cihazlarının sürücüleri ve bunların üzerine katmanlanmış ara sürücüler, sistem kapanmak üzereyken kendilerine kapatma IRP'lerini göndermesi için en üst seviye dosya sistemi sürücüsüne güvenebilir. Yani, FSD, önbelleğe alınan tüm dosya verilerinin çevre aygıtlarına yazıldığından emin olmak ve varsa cihaz önbelleklerinden veya arabelleklerinden verileri temizlemek için temel sürücüleri çağırmak gibi işlemlerden sistem kapatılmadan önce sorumludur.
Verileri dahili olarak önbelleğe alan bir yığın depolama cihazının sürücüsünün DispatchShutdown ve DispatchFlushBuffers yordamlarını sağlaması gerekir. Yığın depolama sürücüsü verileri belleğe arabelleğe alırsa fakat cihazında iç önbellek yoksa, DispatchShutdown ve DispatchFlushBuffers yordamlarını da sağlamak zorundadır.
IRP_MJ_FLUSH_BUFFERS ve IRP_MJ_SHUTDOWN isteklerini işleyen bir sürücünün üzerine katmanlı herhangi bir ara sürücü, DispatchShutdown ve DispatchFlushBuffers yordamlarını da sağlar.