Share via


初始化提供者

您必須為提供者撰寫程式碼的第一個工作之一是初始化程式,其中涵蓋提供者必須執行的任何工作,以便從 WMI 傳送和接收資訊、控制 Managed 物件,以及執行其他工作。 每種提供者類型都有一組不同的工作,必須執行,並具有一組隨附的唯一介面。

不過,所有提供者都會透過 IWbemProviderInit 介面初始化,並透過 IWbemProviderInitSink 介面通知 WMI 其初始化狀態。

下列程式描述如何初始化提供者。

初始化提供者

  1. 為您的提供者實作 IWbemProviderInit::Initialize

    當 WMI 判斷用戶端需要提供者的服務時,WMI 會藉由呼叫 IWbemProviderInit::Initialize 方法載入提供者。

  2. 實作您類型提供者專屬的任何介面。

  3. 通知 WMI 您的提供者已完成初始化,方法是呼叫 IWbemProviderInitSink::SetStatus

    IWbemProviderInit::Initialize的所有實作都必須呼叫IWbemProviderInitSink::SetStatus,以向 WMI 報告初始化狀態。 SetStatus方法可讓 WMI 判斷提供者是否準備好接收要求,以及提供者準備好接收的要求類型。

下列程式描述如何報告成功的初始化。

報告成功的初始化

  • SetStatus 的 IStatus參數設定為WBEM_S_INITIALIZED

    藉由傳回 WBEM_S_INITIALIZED,提供者會指出處理來自應用程式、WMI 和其他提供者的要求整備程度。 收到WBEM_S_INITIALIZED之後,WMI 會在提供者上呼叫 IWbemProviderInit::QueryInterface 方法。 此查詢會擷取提供者主要介面的指標。

下列程式描述如何在初始化期間報告錯誤。

在初始化期間報告錯誤

  • SetStatus 的 IStatus參數設定為WBEM_E_FAILED 傳回WBEM_E_FAILED無法運作 WMI 檢視提供者。

    WMI 會在 WMI 取得提供者主要介面的指標之後,或在初始化失敗之後,釋放 IWbemProviderInit 指標。

開發 WMI 提供者

設定 Namepace 安全性描述元

保護您的提供者