İtme veya Çekme Durumunu Belirleme
Bir sınıf sağlayıcısını, bir sağlayıcının WMI ile nasıl etkileşime geçmek beklediğini belirten bir gönderme veya çekme sağlayıcısı olarak modelleyebilirsiniz. Çekme sağlayıcıları WMI'dan bir istek alır ve verileri dinamik olarak oluşturarak veya yerel önbellekten alarak isteği karşılar. Çekme sağlayıcılarının ayrıca çok sayıda arabirim uygulaması şarttır.
Çekme sağlayıcısı sınıf tanımlarını dinamik olarak oluşturur. Genellikle, çekme sağlayıcısı tarafından yönetilen veriler sık sık değişir ve sağlayıcının sınıfı dinamik olarak oluşturmasını veya bir uygulama istekte bulunsa sınıfı yerel önbellekten almasını zorunlu kılabilir. Bir pull sağlayıcısının kendi veri alma, önbellek ve olay bildirim mekanizmalarını uygulaması gerekir. Çoğu sağlayıcı çekme sağlayıcısı olduğundan, bu dosyadaki belgelerde, aksi açıkça belirtilmediği sürece bir çekme sağlayıcısı oluşturduğunuz varsayılır.
Buna karşılık WMI, gönderme sağlayıcılarına yönelik tüm uygulama isteklerini işlemek için WMI deposundaki verileri kullanır. Anında iletme sağlayıcıları da daha az arabirim yöntemi kullanır ve bu nedenle uygulanması daha kolaydır. Gönderme sağlayıcısı, yönetilen nesne hakkında bilgi için wmi deposunu depolama alanı olarak kullanır ve bu bilgileri yalnızca başlatma sırasında güncelleştirir. Örneğin, Microsoft Windows Yazılım Geliştirme Seti'nin (SDK) WMI bölümüne dahil edilen WDM sınıf sağlayıcısı bir gönderme sağlayıcısı olarak modellenmiştir.
WMI deposunu depolama alanı olarak kullanarak, bir gönderme sağlayıcısı çekme sağlayıcısına göre aşağıdaki avantajları elde eder:
- Sağlayıcının verileri depolamak için yerel önbellek uygulaması gerekmez.
- Sağlayıcının veri almayı desteklemesi gerekmez; bunun yerine sağlayıcı, alma desteği sağlamak için WMI'yi kullanabilir.
- Bir uygulama sağlayıcı tarafından sağlanan verileri istediğinde, WMI bu isteği gerçekleştirir.
- Sağlayıcı, olay bildirimini desteklemek için WMI'yi de kullanabilir.
Ancak, bir gönderme sağlayıcısı yalnızca başlatma sırasında güncelleştirildiğinden, bir sınıfta yapılan tüm değişiklikler bir süre için WMI deposuna yansıtılamayabilir. Bu nedenle, anında iletme sağlayıcısı modeli çok az değişen veya tamamen statik olan sınıflarla en iyi şekilde çalışır.