共用方式為


測試 WMI 驅動程式支援的一般技術

WMI 用戶端工具

有數個工具可用來測試驅動程式中的WMI支援。

Wbemtest
作系統包含 Wbemtest 工具,其提供 GUI,可讓您用來查詢 WMI 類別和類別實例、變更屬性值、執行方法,以及接收事件通知。 連線到 「root\wmi」 命名空間,以測試驅動程式的支援。

Wmic
Microsoft Windows XP 和更新版本的作業系統包含 WMIC 工具,提供一個命令介面,您可以用來發出 WMI 相關命令以測試驅動程式。

Wmimofck
wmimofck 命令可用來檢查二進位MOF檔案的語法。 您也可以使用 wmimofck -t 命令來產生 VBScript 檔案。 您可以使用此腳本來測試驅動程式對 WMI 類別實例查詢的處理。 wmimofck -w 命令會產生網頁,以測試查詢和設定類別、執行方法及接收事件。 請注意,網頁不支援執行使用複雜參數或返回值的方法(例如內嵌類別的陣列)。 在這種情況下,您可以改用 Wbemtest。 如需有關 Wmimofck 的更多資訊,請參閱使用 wmimofck.exe

您也可以使用 WMI 使用者模式 API 撰寫自訂 WMI 用戶端應用程式,以測試驅動程式的 WMI 支援。

如需此使用者模式 API 的詳細資訊,可讓應用程式提供或取用 WMI 資訊,請參閱 Microsoft Windows SDK 檔中的 Windows Management Instrumentation 資訊。

WMI 用戶端應用程式會執行下列工作來測試驅動程式:

  • 連接到 WMI。

    若要連線到 WMI,應用程式可以呼叫元件物件模型 (COM) 函式 CoCreateInstance 來擷取 IWbemLocator 介面的指標。 然後,應用程式會呼叫 IWbemLocator::ConnectServer 方法來連線到 WMI。 從這個呼叫中,應用程式會接收到 IWbemServices 介面的指標。

  • 存取驅動程序中的資訊。

    若要存取資訊和註冊事件,應用程式會使用 IWbemServices 介面的方法。

WMI IRP 和系統事件記錄檔

嚴格在內核模式中發生的 WMI 錯誤會記錄至系統事件記錄檔。 您可以使用事件檢視器來檢查系統事件記錄檔。 (如需詳細資訊,請參閱 記錄錯誤 。)

這類錯誤的兩個主要來源是對 WMI 要求的回覆格式不正確,以及事件通知的參數不正確。 例如,如果驅動程式傳回格式不正確的 WMIREGINFO 數據結構,以回應 IRP_MN_REGINFOIRP_MN_REGINFO_EX 要求,系統會將記錄到系統事件記錄檔。 系統也會記錄對 IoWMIWriteEventWmiFireEvent 的無效呼叫,以發出 WMI 事件通知。

WMI WDM 提供者記錄

WMI WDM 提供者 (Wmiprov.dll) 處理時發生的 WMI 錯誤會記錄至 WMI WDM 提供者的記錄檔,Wmiprov.log。 這是文本檔,可在 \system32\wbem\logs\wmiprov.log %windir%中找到。 此處會記錄錯誤,例如驅動程式的錯誤或遺漏MOF資源。 如果是錯誤的MOF資源,檔案 %windir%\system32\mofcomp.log可能會有與錯誤相關的其他資訊。

在 Windows Vista 之前的 Windows 版本中,您可以使用 Wmimgmt.msc 應用程式來變更所有 WMI 提供者的記錄設定。 (在 Windows 98/Me 中,請改用 Wbemcntl。您可以停用或重新啟用記錄、變更保留 WMI 記錄檔的目錄,以及設定這類檔案的大小上限。 如需詳細資訊,請參閱 WMI 記錄檔