開發 WMI 提供者
提供者是元件物件模型 (COM) 物件,可作為 WMI 與 Managed 物件之間的媒介。 例如,當應用程式或腳本使用 WMI Win32_LogicalDisk 類別要求磁片資料時,資料會透過預先安裝的 Win32 提供者動態取得。
如果您想要透過 WMI 提供資料給其他應用程式,您可以在 Visual Studio 中撰寫 COM 伺服器或 透過 WMI ATL 精靈 來建立 Unmanaged 程式碼提供者。 您可以在 .NET Framework中使用 WMI 撰寫 Managed 程式碼提供者。 本節中的主題描述撰寫 Unmanaged COM 提供者的程式。
注意
若要確保 Managed 物件的所有 WMI 類別定義在 WMI 失敗且重新開機時都會還原到 WMI 存放庫 ,請使用受控物件格式 (MOF) 檔案中的 #pragma自動復原 預處理器指令。
提供者是由 Managed 物件格式 (MOF) 架構所定義的類別,以及執行提供者函式的 DLL 檔案所組成。 例如,定義 Win32 提供者類別的 MOF 是 CIMWin32.mof,而 DLL 則CIMWin32.dll,這兩者都是在 %windir%\System32\Wbem 中找到。
提供者的 MOF 架構可能包含數種提供者類型。 例如, 事件記錄檔提供者 有一個名為 Ntevt.mof 的 MOF 檔案中的實例、方法和事件提供者類型。 建議將相關提供者的所有類別和註冊架構組合在一個檔案中,而不是為每個類別建立一個檔案。
除了使用預先安裝提供者之外,您還可以建立自己的提供者,以提供硬體裝置或軟體作業的相關資訊。
下表列出建立提供者的基本工作。
Task | 描述 |
---|---|
(MOF) 類別設計 Managed 物件格式 | 針對您想要透過 WMI 管理的實體開發模型,並建立受控物件格式 (MOF) 檔案來描述架構。 |
藉由撰寫提供者將資料提供給 WMI | 建立與 WMI 結合的最基本提供者。 |
在應用程式中納入提供者 | 如果提供者未執行所有時間,請將提供者納入應用程式內作為元件。 |
註冊提供者 | 向 COM 和 WMI 註冊提供者。 |
初始化提供者 | 實作 IWbemProviderInit 和 IWbemProviderInitSink 介面。 |
呼叫 WMI | 從提供者呼叫 WMI 介面。 |
模擬用戶端 | 設定安全性以存取用戶端應用程式。 |
更新提供者 | 視需要改善提供者。 |
卸載提供者 | 在關機期間或提供者閒置時,請從記憶體中移除提供者。 |
偵錯提供者 和 提供者組態和疑難排解類別 | 使用 WMI 所提供的設施對提供者進行偵錯。 |
在 64 位電腦上取得和提供資料 | 評估您是否需要 32 位應用程式相容性提供者,或 64 位提供者是否可以將資料提供給這兩個用戶端。 |
下列主題討論撰寫不同類型的提供者所需的步驟: