Aracılığıyla paylaş


Etkinlik Sağlayıcısı Yazma

Olay sağlayıcısı, WMI'ye iç ve dış olay bildirimleri sağlayan bir COM nesnesidir. İç olay, iç veri değişikliğini WMI olarak bildirirken, bir dış olay iç olay tarafından açıklanmayan kullanıcı tanımlı bir olayı bildirir. Örneğin, Win32_LogicalDisk sınıfının değişikliklerine, oluşturulmasına veya silinmesine yanıt olarak bir olay, iç olay olarak sınıflandırılabilir. Mevcut BIR WMI nesnesinin değiştirilmesi, oluşturulması veya silinmesi dışında bir şey temelinde oluşturulan bir olay, ekstrinsik bir olaydır. Desteklenen sınıftan bağımsız olarak, tüm olay sağlayıcılarını aynı şekilde uygulayabilirsiniz.

Aşağıdaki yordamda bir olay sağlayıcısının nasıl uygulandığı açıklanmaktadır.

Olay sağlayıcısı uygulamak için

  1. Sınıf sağlayıcınızı WMI'ye tasarlayıp kaydedin.

    Sınıf sağlayıcıları, bir __Win32Provider örneği ve bir __EventProviderRegistration sınıfı oluşturarak WMI ile kaydolur. Daha fazla bilgi için bkz. Etkinlik Sağlayıcısı Kaydetme.

  2. Sağlayıcınız için IWbemProviderInit arabirimini uygulayın.

    IWbemProviderInit arabirimi, WMI'nin tüm sağlayıcıları yüklemek ve başlatmak için kullandığı ortak bir arabirimdir. Daha fazla bilgi için bkz. Sağlayıcı başlatma.

  3. IWbemEventProvider sağlayıcınız için birincil arabirim olarak uygulayın.

    IWbemEventProvider arabirimi WMI'ye olay sağlamak için ProviderEvents yöntemini kullanır. Daha fazla bilgi için bkz. Olay Sağlayıcısı için Birincil Arabirim Uygulaması.

    Not

    Olay sağlayıcıları "Both" çoklu iş parçacığı modelini kullanmalıdır.

     

  4. İsteğe bağlı olarak, olay sağlayıcınızın performansını artırmak için IWbemEventProviderQuerySink arabirimini de uygulayabilirsiniz.

    IWbemEventProviderQuerySink arabirimi, sağlayıcının WMI'ye yanıt göndermeden önce sorguları iyileştirmesine olanak tanır ve en çok birden çok türde olay sağlayan ve mümkün olduğunca çok iç iyileştirme gerçekleştirmesi gereken bir sağlayıcı için kullanışlıdır. Daha fazla bilgi için bkz. Olay Sağlayıcısını İyi hale getirme.

  5. Tüketicileri belirli güvenlik tanımlayıcılarıyla (SID) sınırlamak için IWbemEventProviderSecurityarabiriminiuygulayın veya havuzun güvenliğini sağlamak için IWbemEventSink::SetSinkSecurityuygulayın. Sağlayıcı, MOF kodundaki tek tek olayların güvenliğini sağlamak için olay sınıfındaki SECURITY_DESCRIPTOR özelliğini de ayarlayabilir. Daha fazla bilgi için bkz. WMI Olaylarının Güvenliğini Sağlama.

  6. Sağlayıcınız için gereken tüm ek kodları ekleyin.

    Sağlayıcınızı tasarlarken büyük olasılıkla WMI arabirimlerini çağırmanız gerekir. Daha fazla bilgi için bkz. Bir Yöntemi Çağırma.

    bir istemcinin bilgilerini alırken, bu istemcinin güvenlik düzeylerine erişmeniz gerekebilir. Daha fazla bilgi için bkz. Bir Müşterinin Kimliğine Bürünme.

  7. Önceden var olan sağlayıcıyı yeni kodunuzla değiştirin.

    Kopyalanacak önceden var olan bir sağlayıcı yoksa bu adımı gerçekleştirmeniz gerekmez. Daha fazla bilgi için bkz. sağlayıcıyı güncelleştirme .

İstemci uygulaması, kendisini WMI'ye olay tüketicisi olarak kaydederek bir olay isteyebilir. Daha fazla bilgi için bkz. WMI Etkinliği Alma.