初始化提供者
您必須為提供者撰寫程式代碼的第一項工作是初始化程式,其中涵蓋提供者必須執行的任何工作,以允許它從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 方法。 此查詢會擷取指向提供者主要介面的一個指標。
下列程式描述如何在初始化期間報告錯誤。
在初始化期間報告錯誤
將 SetStatusIStatus 參數設定為 WBEM_E_FAILED。 WMI 將傳回 WBEM_E_FAILED 的提供者視為無法運作。
WMI 會在取得提供者主要介面的指標之後,或在初始化失敗時,釋放 IWbemProviderInit 指標。
相關主題