Olay Sağlayıcısını en iyi duruma getirme
Olay sağlayıcısı olay oluşturmaya çok zaman ayırabilir. Oluşturulan olayları hiçbir istemci uygulaması kullanmıyorsa sağlayıcı sistem kaynaklarını boşa harcar. Ayrıca WMI, karmaşık sorguları ayrıştırmak ve uygun sağlayıcıya göndermek için önemli miktarda kaynak harcar. Sistem kaynaklarının israfını önlemek ve olay sağlayıcınızın performansını geliştirmek için IWbemEventProviderQuerySink arabirimini uygulayabilirsiniz. IWbemEventProviderQuerySink, NewQuery ve CancelQuery yöntemlerini kullanarak istemci uygulamalarının WMI'ye kaydettirdiği sorguları izler. Kayıtlı istemci sorgularını izleyerek, sağlayıcınız WMI'ye herhangi bir ileti gönderilmesi gerekip gerekmediğini belirleyebilir.
WMI, bir olay sağlayıcısında bir istemci tüketicisi tarafından, o olay sağlayıcısı tarafından desteklenen olaylara referanslar içeren bir olay filtresi sorgusu kaydedildiğinde NewQuery çağrısı yapar. Bu nedenle, EmailClass sınıfı için örnek değiştirme olaylarından sorumlu olay sağlayıcısı, yalnızca göndereniçin bildirim oluşturacak şekilde ayarlanabilir. Sağlayıcı, konu özelliğinde değişiklik bildirimi isteyen bir sorgu aldığında, sağlayıcı bu bildirimleri oluşturmaya başlayabilir. In this scenario, WMI'nin yalnızca değişiklikleri bildiren alıcı bildirimlerini atmasına gerek yoktur.
Benzer şekilde, bir istemci tüketici, olay sağlayıcısı tarafından desteklenen olaylara başvurular içeren bir olay filtresi sorgusunun kaydını kaldırdığında, WMI olay sağlayıcısında CancelQuery çağrısını yapar. CancelQuery amacı, olay sağlayıcısının hangi olayların gönderilmesi gerektiğinin listesini güncelleştirmesini sağlamaktır.
Not
Sağlayıcınız hem IWbemEventProviderhem de IWbemEventProviderQuerySinkdestekliyorsa, IUnknown::QueryInterface yöntemini uygulamanızın her iki arabirime de işaretçi döndürdüğünden emin olun.