共用方式為


註冊事件提供者

若要建立 WMI 事件提供者,您必須使用 __EventProviderRegistration實例來註冊代表您提供者的 __Win32Provider 實例。 身為 COM 物件身分,您的提供者必須向作業系統和 WMI 註冊。 下列程序假設您已經如 註冊提供者中所述實作了註冊流程。

下列程序說明如何註冊事件提供者。

註冊事件提供者

  1. 建立描述提供者之 __Win32Provider 類別的實例。

  2. 建立描述提供者功能集的 __EventProviderRegistration 類別實例。

    __EventProviderRegistration 類別會從 __ObjectProviderRegistration 父類別繼承許多屬性。 __EventProviderRegistration 類別的本機屬性是提供者的物件路徑,以及描述提供者所支援事件的查詢清單。 如需詳細資訊,請參閱 「查詢 WMI」

  3. __Win32Provider__EventProviderRegistration 類別的實作載入 WMI 存放庫。

    WMI 會使用您的類別定義來註冊和存取事件提供者。 如需詳細資訊,請參閱 註冊提供者

下列程式代碼範例說明 __Win32Provider 類別和 __EventProviderRegistration 類別的實作。

instance of __Win32Provider as $P
{
    ClientLoadableCLSID = NULL;
    CLSID = "{AA7828C5-95F9-11d2-BB0D-00C042424242}";
    DefaultMachineName = NULL;
    ImpersonationLevel = 0;
    InitializationReentrancy = 0;
    InitializeAsAdminFirst = FALSE;
    Name = "FaxEventProvider";
    PerLocaleInitialization = FALSE;
    PerUserInitialization = FALSE;
    Pure = TRUE;
    UnloadTimeout = NULL;
};

instance of __EventProviderRegistration
{  
Provider = $P;
EventQueryList = {
         "SELECT * FROM FaxEvent",
         "SELECT * FROM __InstanceCreationEvent WHERE TargetInstance ISA \"Win32_LogicalDisk\""};
};

第一個查詢顯示提供者會產生所有屬於外部事件類別 FaxEvent 的事件通知。 因為它會使用 ISA 運算符,所以第二個查詢表示提供者會針對 Win32_LogicalDisk 類別及其所有子類別的所有實例建立事件產生通知。

當提供者註冊以提供內建事件時,事件必須套用至類別的所有實例。 換句話說,無法撰寫查詢來提供只針對屬於 Win32_LogicalDisk 類別的部分磁碟驅動器的實體建立事件。