適用于 WMI 的 COM API

您可以使用 WMI 元件物件模型 (COM) API 來撰寫管理用戶端應用程式或建立新的 WMI 提供者。 COM API 參考提供進階系統管理員的資訊,以及撰寫用戶端和提供者應用程式的開發人員。

如需撰寫 WMI 企業管理應用程式的詳細資訊,請參閱 使用 C++ 建立 WMI 應用程式。 如需如何撰寫 WMI 提供者的詳細資訊,請參閱 將資料提供給 WMI

注意

WMI 僅支援使用 Microsoft Visual C++ 6.0 版和更新版本的開發系統進行 C++ 開發。 不過,您也可以使用其他編譯器,例如來自 Borland 和 Watcom 的編譯器。

 

每個不同的 WMI 物件都繼承自介面,最終繼承自 IUnknown 介面。 COM 會指示物件實作者或介面如何處理記憶體管理、參數管理和多執行緒等工作。 藉由符合 COM,適用于 WMI 的 COM API 可確保它支援每個 WMI 物件的介面所提供的功能。

WMI 是透過下列 WMI 特定的 COM 介面來存取。

介面 描述
IEnumWbemClassObject 適用于 IWbemClassObject類型的物件的列舉值。 它類似于標準 COM 列舉值,例如 IEnumVariant
IMofCompiler 由 Mofd.dll 實作,此介面提供 MOF 編譯器所使用的 COM 介面,以及編譯 MOF 檔案的任何其他應用程式。
IUnsecuredApartment 用來簡化從用戶端進程進行非同步呼叫的程式。
IWbemBackupRestore 備份及還原 WMI 存放庫的內容。
IWbemCallResult 用於IWbemServices介面的半非同步呼叫。 進行這類呼叫時,呼叫的 IWbemServices 方法會立即傳回,以及 IWbemCallResult 物件。
IWbemCausalityAnalysis 追蹤從父要求產生的子要求。
IWbemClassObject 包含及操作類別定義和類別物件實例。 開發人員不需要實作此介面;WMI 提供其實作。
IWbemConfigureRefresher 用戶端程式代碼用來將列舉值、物件和巢狀重新整理器新增或移除至重新整理器。
IWbemCoNtext 選擇性地在提交 IWbemServices 呼叫 Windows 管理時,將其他內容資訊傳達給提供者。
IWbemDecoupledBasicEventProvider 向 WMI 註冊分離的提供者。
IWbemDecoupledRegistrar 建立分離提供者與 WMI 的關聯。 此介面可讓進程裝載的提供者定義介面的互通性存留期,並與其他提供者共存。
IWbemEventConsumerProvider 提供事件取用者提供者的主要介面。 透過這個介面和 FindConsumer 方法,事件取用者提供者可以指出哪些事件取用者應該接收指定的事件。
IWbemEventProvider 用來起始與事件提供者的通訊。
IWbemEventProviderQuerySink 選擇性地由想要知道目前作用中的事件查詢篩選類型的事件提供者實作,以優化效能。
IWbemEventProviderSecurity 選擇性地由想要限制取用者存取其事件的事件提供者實作。
IWbemEventSink 使用一組受限制的查詢,起始與事件提供者的通訊。 此介面會擴充 IWbemObjectSink,並提供處理安全性和效能的新方法。
IWbemHiPerfProvider 可讓提供者提供可重新整理的物件和列舉值。
IWbemHiPerfEnum 用於重新整理作業,以提供實例物件的列舉快速存取。
IWbemLocator 取得特定主機電腦上的 WMI IWbemServices 介面的初始命名空間指標。
IWbemObjectAccess 提供物件的方法和屬性的存取權。 IWbemObjectAccess物件是重新整理更新之實例的容器。
IWbemObjectSink 用來接收 IWbemServices 的結果和特定類型的事件通知。
IWbemObjectTextSrc 用來將 IWbemClassObject 實例翻譯成不同文字格式。
IWbemPropertyProvider 支援在 WMI 類別的實例中擷取和更新個別屬性。
IWbemProviderIdentity 如果提供者使用多個Name (多個具有相同CLSID值的實例來註冊__Win32Provider) ,則由事件提供者實作。 類別提供一種機制,用來區別應該使用哪一個具名提供者。
IWbemProviderInit 用來初始化提供者。
IWbemProviderInitSink 由 WMI 實作,並由提供者呼叫以報告初始化狀態。
IWbemQualifierSet 做為單一屬性或整個物件之一組具名限定詞的容器, (類別或實例) 。
IWbemQuery 提供可剖析 WQL) 查詢 (WMI 查詢語言 的進入點。
IWbemRefresher 提供可重新整理物件,例如列舉值或重新整理器物件等可重新整理的進入點。
IWbemServices 用戶端和提供者用來存取 WMI 服務。 介面只會由 WMI 實作,而且是主要 WMI 介面。
IWbemStatusCodeText 擷取錯誤碼的文字字串描述,或發生錯誤的子系統名稱。
IWbemUnboundObjectSink 由所有邏輯事件取用者實作。 它是接受事件物件傳遞的簡單接收介面。

 

注意

許多 WMI COM 函式都會傳回記錄為具名常數的數值錯誤碼。 這些常數定義于 PSDK WMI\Include 資料夾中的 Wbemcli.h 中。 如需詳細資訊,請參閱 WMI 傳回碼

 

如需下列 COM 程式設計主題的詳細資訊,請參閱 元件開發

  • 介面和物件設計。
  • 實作 IUnknown
  • 記憶體管理
  • 處理參考計數。

WMI 參考