適用于 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 用戶端。

EvtWmiInstanceSetInstanceEvtWmiInstanceSetItem
將驅動程式資料區塊中的資訊設定為用戶端提供的值。

EvtWmiInstanceExecuteMethod
在用戶端的要求執行驅動程式提供的方法。

實作 WMI 的範例驅動程式

FIREFLY、PCIDRV 和 Toaster 範例驅動程式 是 WMI 資料提供者。