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.
Windows, yüklenebilir bir sürücünün birden çok örneğine izin verir. Sistem, sürücü her açıldığında sürücünün bir örneğini oluşturur ve sürücü kapatıldığında örneği yok eder. Sürücü örnekleri, birden çok cihazı destekleyen veya birden çok uygulama tarafından veya aynı uygulama tarafından birden çok kez açılan yüklenebilir sürücüler için özellikle yararlıdır.
Sürücünün örnekleri izlemesine yardımcı olmak için sistem, örnek oluşturulduktan sonra her sürücü iletisiyle bir sürücü örneği tanıtıcısı gönderir. Bu tanıtıcı örneği benzersiz olarak tanımladığından, yüklenebilir sürücüler genellikle tanıtıcıyı örnek için özel olarak ayırdıkları bellek ve diğer kaynaklarla ilişkilendirir.
İlk örnek açıldığında, sistem sürücüye DRV_LOAD, DRV_ENABLEve DRV_OPEN iletilerini bu sırayla gönderir. DRV_LOAD ve DRV_ENABLE iletileri sürücüye bellekte olduğunu ve işlem için etkinleştirildiğini bildirir. DRV_OPEN iletisi örnek tanıtıcısını tanımlar ve örneğin yapılandırma bilgilerini içerebilir. Aynı sürücünün bir örneğinin sonraki her açılışında sistem yalnızca bir DRV_OPEN iletisi gönderir.
bir DRV_LOAD iletisini işlerken, bir sürücü genellikle kayıt defterinden yapılandırma ayarlarını okur, sürücüyü ve ilişkili donanımı yapılandırıp sürücünün tüm örnekleri tarafından kullanılmak üzere bellek ayırır. Bir sürücü yapılandırmayı tamamlayamıyor veya bellek ayıramıyorsa, sistemi sürücüyü bellekten hemen kaldırmaya ve sonraki iletilerin gönderilmesini önlemeye yönlendirmek için sıfır döndürür. sürücü, DRV_ENABLE iletisini işlerken, giriş ve çıkış (G/Ç) isteklerini almak ve işlemek için donanımı hazırlar. Hazırlık, kesme işleyicileri yüklemeyi içerebilir.
DRV_OPEN iletisini işlerken, sürücü sürücünün belirtilen örneği için gereken belleği veya kaynakları ayırır ve sıfır olmayan bir değer döndürür. Sistem, örnek için sonraki sürücü iletilerinde sürücü tanımlayıcısı olarak sıfır olmayan bu değeri kullanır. Sürücü bu tanımlayıcıyı herhangi bir amaçla kullanabilir. Örneğin, bazı sürücüler verilen örnek hakkında bilgi içeren belleğe hızlı erişim elde etmek için tanımlayıcı için bir bellek tutamacı kullanır.
Birçok yüklenebilir sürücü, DRV_OPEN iletisinin ikinci parametresini işler ve sistem ve uygulamalara bir örneği açarken sürücüye ek bilgi gönderme aracı sağlar. parametresi tek bir değer veya değer kümesi içeren bir yapının adresi olabilir. sürücü, DRV_OPEN işlerken parametreyi denetleerek bunun bir değer olup olmadığını belirler ve varsa verilen değerleri kullanarak örneğin oluşturulmasını tamamlar.
Sistem, bir örnek her kapatılırken bir DRV_CLOSE iletisi gönderir. İletiyle gönderilen örnek tanıtıcısı, hangi örneğin kapatileceğini tanımlar. Kalan son örnek kapatıldığında, sistem DRV_CLOSE, DRV_DISABLEve DRV_FREE iletilerini bu sırayla gönderir. DRV_CLOSE iletisi sürücüyü örneği kapatmaya yönlendirir ve DRV_DISABLE ve DRV_FREE iletileri sürücüye artık devre dışı olduğunu ve bellekten hemen boşaltılacağını bildirir.
DRV_CLOSE iletisini işlerken, sürücü genellikle örnek için ayrılan tüm belleği veya kaynakları serbest bırakır. sürücü, DRV_DISABLE iletisini işlerken, kesme işleyicilerinin kaldırılmasını içerebilen herhangi bir donanımı etkin olmayan bir duruma yerleştirir. DRV_FREE iletisini işlerken, sürücü hala ayrılan tüm belleği veya kaynakları serbest bırakır.
Birden çok örneği desteklemek için yüklenebilir sürücüler gerekli değildir. Sürücü, DRV_OPEN iletisi için sıfır döndürerek herhangi bir örneğin oluşturulmasını engelleyebilir.