共用方式為


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

WMI 用戶端工具

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

Wbemtest
作業系統包含 Wbemtest 工具,提供可用來查詢 WMI 類別和類別實例的 GUI、變更屬性值、執行方法,以及接收事件通知。 連線到 「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 錯誤 (Wmiprov.dll) 會記錄到 WMI WDM 提供者 Wmiprov.log 的記錄檔。 這是可在 %windir%\system32\wbem\logs\wmiprov.log 中找到的文字檔。 此處會記錄錯誤,例如驅動程式的錯誤或遺失 MOF 資源。 如果是不正確的 MOF 資源,檔案 %windir%\system32\mofcomp.log 可能會有與錯誤相關的其他資訊。

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