撰寫類別提供者
WMI 類別提供者負責管理單一類別或一系列類別。 類別提供者可以是推送或提取;也就是說,它可以儲存自己的數據,或允許 WMI 將它的數據儲存在 Windows Management Service 中。 雖然類別提供者安裝在特定計算機上,但它可以變更整個企業的類別定義。 因此,大多數開發人員通常不會建立類別提供者。
建構類別提供者之前,請先確認支援類別確實必須動態產生。 在大部分情況下,類別清單會變慢且有限。 如果是這種情況,您就不應該建立類別提供者。 相反地,您可以使用 WMI API 或 MOF 檔案,將類別定義放在 WMI 存放庫中。
下列步驟說明如何實作一個類別提供者。
實作類別提供者
判斷您的提供者是否為推送或提取提供者。
提取提供者會動態提供數據以回應應用程式要求,而推送提供者會在WMI存放庫中儲存其數據一次。 如需詳細資訊,請參閱 推送或提取狀態的判斷。
使用 WMI 設計和註冊您的類別提供者。
類別提供者會藉由建立 __Win32Provider 實例和 __ClassProviderRegistration 實例,向 WMI 註冊。 如需詳細資訊,請參閱 註冊類別提供者。
為您的提供者實作 IWbemProviderInit 介面。
WMI 使用 IWbemProviderInit 來載入和初始化提供者。 如果您要設計推送提供者,IWbemProviderInit 是唯一將實作的介面。 如需詳細資訊,請參閱 初始化提供者。
注意
強烈建議類別提供者使用多線程模型 「Both」。。
新增提供者所需的任何額外程式碼。
設計提供者時,您可能需要呼叫 WMI 介面。 如需詳細資訊,請參閱 呼叫方法 和 在提供者中維護安全性層級。
擷取客戶端的資訊時,您可能需要存取該客戶端的安全性層級。 如需詳細資訊,請參閱 模擬用戶端。
為您的提供者實作 IWbemServices 介面。
IWbemServices 介面是提取類別提供者的主要介面。 如需詳細資訊,請參閱 實作類別提供者的主要介面。
以新的程式碼取代預先存在的提供者。
如果您沒有預先存在的提供者可複製,則不需要執行此步驟。 如需詳細資訊,請參閱 更新服務提供者。