WMI 的架構在WMI SPEC 中分為三個部分,如圖所示
第一個是 WMI Providers (提供者) 及 Managed Objects (受管理物件)
WMI Provider 符合 COM 標準,用來管理 WMI 的受管理物件,單一 Provider 可管理一個或數個物件,受管理物件可為電腦的實體組件、資料庫系統、作業系統、進程(Process)或服務(Service)。WMI Provider 與驅動程式相似,提供受管理物件的資訊或處理受管理物件回報的訊息。Provider 由 MOF (Managed Object Format) 與 DLL 組成,定義了 Class 裡的回傳資料及進行操作,Windows資料夾 %WINDIR%\System32\wbem 中可看到許多系統提供的 MOF 與 DLL,用來取得系統 WMI 相關操作。WMI ACPI 及 Provider 實例可先參考 WMI 驅動程式範例,後續會再介紹範例的內容。
第二個是 WMI Infrastructure (基礎結構)
WMI Infrastructure 是 Microsoft Windows 作業系統元件中的 Winmgmt (Windows Management Instrumentation) 服務,會作為共用服務 Windows Services 的主機處理程序 (SVCHOST),架構上包含了 WMI Core (核心) 與 WMI Repository (存放庫),也是 Provider 與 Consumer 之間的媒介。WMI Repository 是儲存靜態資料的區域,如 Provider 提供的 Classes 相關資料。動態資料方面會在 Consumer 要求資料時,與 Provider 互動執行特定功能取得即時資訊。
WMI 會使用事件追蹤來記錄 WMI 相關的服務活動。Infrastructure 也提供下列功能 事件通知、查詢語言、安全性、腳本存取效能計數器資料。
第三個是 WMI Consumers (取用者)
與 WMI Infrastructure 互動的應用程式或腳本稱為 WMI Consumer,應用程式可以使用 WMI 的 COM API 或 腳本 API 與 WMI Infrastructure、Provider 互動,以進行查詢、列舉資料、執行方法或訂閱事件等行為。
架構圖中 COM (Component Object Model, 元件物件模型) 是 Microsoft 所制定的一種二進位機器碼下的軟體元件介面標準、可用許多語言撰寫(需可建立指標結構),結構可依需求制訂,只要轉譯二進位後符合 COM 標準即可,所以可在不同平台、不同電腦下使用。物件可包含 Data Sets 與 Function sets,function 可用以運算操作傳輸資料,Function sets 稱為 Interface,單一 Function 稱為 Method。WMI 各部分介面銜接皆符合 COM 的標準。