適用于 KMDF 驅動程式的 WMI 簡介
[僅適用于 KMDF]
Kernel-Mode Driver Framework 支援將資訊提供給 Windows Management Instrumentation (WMI) 的驅動程式。 這類驅動程式稱為 WMI 資料提供者 ,因為它們會將資料提供給 WMI 用戶端,也就是已註冊以接收來自 WMI 資訊的應用程式。
WMI 資料提供者支援 WMI 資料區塊,可代表下列一或多個專案:
資料項目,其中包含驅動程式傳送或接收 WMI 用戶端的裝置特定資料。
方法 (函式) 驅動程式代表 WMI 用戶端執行。
驅動程式傳送至已註冊以接收裝置特定事件通知的 WMI 用戶端的事件。
WMI 資料區塊會指定為 .mof 檔案中的 WMI 類別 。 每個 WMI 資料區塊都是由 GUID 識別。
所有驅動程式都必須支援 WMI 為其裝置類別定義的任何標準 WMI 資料區塊。 這些 WMI 資料區塊定義于 Wmicore.mof中。
您的驅動程式也可以支援您在 .mof 檔案中定義的 WMI 資料區塊。 若要瞭解如何定義及發佈自訂的 WMI 資料區塊,請參閱下列各節:
架構 WMI 物件和回呼函式
架構會定義驅動程式可用來實作 WMI 資料提供者的兩個物件。 WMI 提供者物件代表驅動程式所提供的 WMI 資料區塊架構。 WMI 實例物件代表與特定提供者相關聯的資料區塊實例。 驅動程式會實作下列兩個物件所定義的事件回呼函式,以與 WMI 用戶端通訊:
EvtWmiProviderFunctionControl
啟用和停用驅動程式對收集 WMI 資料及傳送 WMI 事件的支援。
EvtWmiInstanceQueryInstance
將 WMI 提供者的實例資料傳遞至 WMI 用戶端。
EvtWmiInstanceSetInstance和EvtWmiInstanceSetItem
將驅動程式資料區塊中的資訊設定為用戶端提供的值。
EvtWmiInstanceExecuteMethod
在用戶端的要求執行驅動程式提供的方法。
實作 WMI 的範例驅動程式
FIREFLY、PCIDRV 和 Toaster 範例驅動程式 是 WMI 資料提供者。