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.
Aşağıdaki şekilde, bir cihaz yüklendiğinde otomatik yapılandırmadaki veri akışı gösterilmektedir.
Yazıcı yüklendiğinde, biriktirici
DrvPrinterEventişlevini çağırır ve çağrıda PRINTER_EVENT_INITIALIZE ileterek sürücüyü başlatır.Sürücü, \Printer.Configuration.DuplexUnit:Installed ve \Printer.Configuration.HardDisk:Installed gibi yüklenebilir seçeneklerin değerleri de dahil olmak üzere ilgi çekici verileri almak için bidi iletişim arabirimlerini kullanır.
Bidi iletişim arabirimi, bu özniteliklerin değerleri için bağlantı noktası izleyicisini sorgular. Bağlantı noktası izleyicisinin önbelleğinde istenen verilerin bir kısmı olabilir. Aşağıdaki adımlarda açıklayıcı olarak, \Printer.Configuration.HardDisk:Installed değerinin bağlantı noktası izleyicisinin önbelleğinde olduğunu, ancak \Printer.Configuration.DuplexUnit:Installed değerinin olmadığını varsayalım.
Bağlantı noktası izleyicisinin önbelleği varsa ve istenen değerlerden birini veya daha fazlasını buna kaydettiyse, bağlantı noktası izleyicisi bu değerleri bidi iletişim arabirimine döndürür. Önbelleğinde olmayan değerler için bağlantı noktası izleyicisi ERROR_NO_DATA döndürür. Bağlantı noktası izleyicisi bir önbellek uyguladığında ancak önbellek boşsa bidi sorgusunun başarısız olabileceğini unutmayın. Bu sorunu önlemek için, bağlantı noktası izleyicisinin önbelleği doldurulduğunda bidi iletişim arabirimini bilgilendirmesi gerekir.
Bidi iletişim arabirimi, bağlantı noktası izleyicisinden aldığı bilgileri sürücüye geçirir. Bidi iletişim arabiriminden bağlantı noktası izleyicisine yapılan çağrı herhangi bir nedenle başarısız olursa, sürücünün bu öznitelikler için varsayılan değerleri ayarlaması gerekir. Bağlantı noktası izleyicisi istenen öznitelikler hakkında bilgi alır almaz, bu bilgileri içeren bir bildirimi bidi iletişim arabirimine göndermelidir.
Sürücü, kayıt defterini \Printer.Configuration.HardDisk:Installed (bağlantı noktası izleyicisinin önbelleğinden alınır) ve \Printer.Configuration.DuplexUnit:Installed için varsayılan değerle güncelleştirir.
Bağlantı noktası izleyicisi, önbelleğe alınan değer (\Printer.Configuration.HardDisk:Installed) dahil olmak üzere her iki değer için de cihazı sorgular.
Cihaz sorgulanan öznitelikler için değerlerini bağlantı noktası izleyicisine gönderir. Değeri önbellekte mevcut olmayan veya değeri önbellektekinden farklı olan tüm öznitelikler için bağlantı noktası izleyicisi yeni değeri önbelleğine yerleştirir.
Bağlantı noktası izleyicisi, biriktiriciye önceden önbellekte olmayan veya değiştirilen değerleri içeren bir bildirim gönderir. Bu örnekte, bağlantı noktası izleyicisi \Printer.Configuration.DuplexUnit:Installed için yeni değeri diziciye bildirim olarak gönderir. Önbelleğe alınan değer cihazdan alınan yeni değerle aynıysa, port izleyicisinin biriktiriciye bildirim göndermeyeceğini unutmayın.
Biriktirici,
DrvPrinterEventçağrısında bulunarak, değiştirilmiş tüm değerler hakkında bilgiye ek olarak PRINTER_EVENT_CONFIGURATION_UPDATE'i geçirip bağlantı noktası izleyicisinden gelen bildirime yanıt verir. Bu eylem iki amaca hizmet eder: değeri önbelleğe ilk kez yerleştirilen veya değeri değiştirilen herhangi bir özniteliğin değerini sürücüye bildirmek için (\Printer.Configuration.DuplexUnit:Bu örnekte yüklü); kayıt defterini güncelleştirmek için. Her yazıcı için, biriktirici çağrılarınıDrvPrinterEventile seri hale getirir, bu nedenle sürücünün iş parçacığı güvenli olmasına gerek yoktur.Cihaz bilgileri kayıt defterinde depolandığından, sürücü fiziksel cihazla doğrudan iletişim kurmaya gerek kalmadan kullanıcı arabirimini veya cihaz özellikleri bilgilerini güncelleştirme çağrılarını karşılayabilir. Değişiklik bildirimleri sürücüyü cihazı sorgulamak ve cihaz yapılandırma durumunu güncelleştirmek için tetiklediğinden, sürücü kayıt defterinde depolanan bilgilerin doğru olduğundan emin olabilir.
Sürücü, kullanıcı arabirimini en son yapılandırmaya göre güncelleştirir.
Bildirim iletisi değiştirilen değeri taşıdığından, sürücü cihaz yüklemesi sırasında ne zaman bir değişiklik olduğunu belirleyebilir. Bununla birlikte, bildirim, bildirim mekanizması aracılığıyla gönderilemeyecek kadar büyükse, bildirimde bir veya daha fazla ReducedSchema örneği bulunur ve bunların her biri cihaz özelliğinin değiştiğini gösterir, ancak yeni değerinin ayrıntılarını içermez.