初始化提供者
您必須為提供者撰寫程式碼的第一個工作之一是初始化程式,其中涵蓋提供者必須執行的任何工作,以便從 WMI 傳送和接收資訊、控制 Managed 物件,以及執行其他工作。 每種提供者類型都有一組不同的工作,必須執行,並具有一組隨附的唯一介面。
不過,所有提供者都會透過 IWbemProviderInit 介面初始化,並透過 IWbemProviderInitSink 介面通知 WMI 其初始化狀態。
下列程式描述如何初始化提供者。
初始化提供者
為您的提供者實作 IWbemProviderInit::Initialize 。
當 WMI 判斷用戶端需要提供者的服務時,WMI 會藉由呼叫 IWbemProviderInit::Initialize 方法載入提供者。
實作您類型提供者專屬的任何介面。
通知 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 指標。
相關主題