共用方式為


撰寫類別提供者

WMI 類別提供者負責管理單一類別或一系列類別。 類別提供者可以是推送或提取;也就是說,它可以儲存自己的數據,或允許 WMI 將它的數據儲存在 Windows Management Service 中。 雖然類別提供者安裝在特定計算機上,但它可以變更整個企業的類別定義。 因此,大多數開發人員通常不會建立類別提供者。

建構類別提供者之前,請先確認支援類別確實必須動態產生。 在大部分情況下,類別清單會變慢且有限。 如果是這種情況,您就不應該建立類別提供者。 相反地,您可以使用 WMI API 或 MOF 檔案,將類別定義放在 WMI 存放庫中。

下列步驟說明如何實作一個類別提供者。

實作類別提供者

  1. 判斷您的提供者是否為推送或提取提供者。

    提取提供者會動態提供數據以回應應用程式要求,而推送提供者會在WMI存放庫中儲存其數據一次。 如需詳細資訊,請參閱 推送或提取狀態的判斷

  2. 使用 WMI 設計和註冊您的類別提供者。

    類別提供者會藉由建立 __Win32Provider 實例和 __ClassProviderRegistration 實例,向 WMI 註冊。 如需詳細資訊,請參閱 註冊類別提供者

  3. 為您的提供者實作 IWbemProviderInit 介面。

    WMI 使用 IWbemProviderInit 來載入和初始化提供者。 如果您要設計推送提供者,IWbemProviderInit 是唯一將實作的介面。 如需詳細資訊,請參閱 初始化提供者

    注意

    強烈建議類別提供者使用多線程模型 「Both」。。

     

  4. 新增提供者所需的任何額外程式碼。

    設計提供者時,您可能需要呼叫 WMI 介面。 如需詳細資訊,請參閱 呼叫方法在提供者中維護安全性層級。

    擷取客戶端的資訊時,您可能需要存取該客戶端的安全性層級。 如需詳細資訊,請參閱 模擬用戶端

  5. 為您的提供者實作 IWbemServices 介面。

    IWbemServices 介面是提取類別提供者的主要介面。 如需詳細資訊,請參閱 實作類別提供者的主要介面

  6. 以新的程式碼取代預先存在的提供者。

    如果您沒有預先存在的提供者可複製,則不需要執行此步驟。 如需詳細資訊,請參閱 更新服務提供者