Поделиться через


Общие методы тестирования поддержки драйверов WMI

Клиентские средства WMI

Существует несколько средств, которые можно использовать для проверки поддержки WMI в драйвере.

Wbemtest
Операционная система включает средство Wbemtest, которое предоставляет графический интерфейс, который можно использовать для запроса классов WMI и экземпляров классов, изменения значений свойств, выполнения методов и получения уведомлений о событиях. Подключитесь к пространству имен root\wmi, чтобы проверить поддержку драйвера.

Wmic
Операционные системы Microsoft Windows XP и более поздних версий включают средство Wmic, которое предоставляет командную оболочку, которую можно использовать для выполнения команд, связанных с WMI, для тестирования драйвера.

Wmimofck
Команду wmimofck можно использовать для проверка синтаксиса двоичных MOF-файлов. Для создания файла VBScript можно также использовать команду wmimofck -t . Этот скрипт можно использовать для проверки обработки драйвером запросов экземпляров класса WMI. Команда wmimofck -w создает веб-страницы, которые могут проверять запросы и задавать классы, выполнять методы и получать события. Обратите внимание, что веб-страницы не поддерживают методы выполнения, использующие сложные параметры или возвращаемые значения (например, массив внедренных классов). В таких случаях вместо него можно использовать Wbemtest. Дополнительные сведения о Wmimofck см. в разделе Использование wmimofck.exe .

Вы также можете протестировать поддержку WMI драйвера, написав пользовательское клиентское приложение WMI с помощью API пользовательского режима WMI.

Дополнительные сведения об этом API пользовательского режима, который позволяет приложениям предоставлять или использовать сведения О WMI, см. в документации по инструментарию управления Windows в документации по Microsoft Windows SDK.

Клиентское приложение WMI выполняет следующие задачи для тестирования драйвера:

  • Подключается к WMI.

    Для подключения к WMI приложение может вызвать функцию COM CoCreateInstance, чтобы получить указатель на интерфейс IWbemLocator . Затем приложение вызывает метод IWbemLocator::ConnectServer для подключения к WMI. Из этого вызова приложение получает указатель на интерфейс IWbemServices .

  • Обращается к сведениям в драйвере.

    Для доступа к информации и регистрации событий приложение использует методы интерфейса IWbemServices .

WMI IRP и журнал системных событий

Ошибки WMI, возникающие строго в режиме ядра, регистрируются в журнале системных событий. Вы можете использовать Просмотр событий для просмотра журнала системных событий. (Дополнительные сведения см. в разделе Ведение журнала ошибок .)

Двумя main источниками таких ошибок являются неправильные ответы на запросы WMI и неверные параметры для уведомлений о событиях. Например, если драйвер возвращает неправильно сформированную структуру данных WMIREGINFO в ответ на запрос IRP_MN_REGINFO или IRP_MN_REGINFO_EX , система зановит это в журнал событий системы. Система также регистрирует недопустимый вызов IoWMIWriteEvent и WmiFireEvent для выдачи уведомления о событии WMI.

Журнал поставщика WMI WDM

Ошибки WMI, возникающие при обработке поставщиком WMI WDM (Wmiprov.dll), регистрируются в файле журнала для поставщика WMI WDM Wmiprov.log. Этот текстовый файл можно найти в папке %windir%\system32\wbem\logs\wmiprov.log. Здесь регистрируются ошибки, такие как недопустимый или отсутствующий ресурс MOF для драйвера. В случае неправильного ресурса MOF файл %windir%\system32\mofcomp.log может содержать дополнительные сведения, связанные с ошибкой.

В версиях Windows, предшествующих Windows Vista, можно изменить параметры ведения журнала для всех поставщиков WMI с помощью приложения Wmimgmt.msc. (В Windows 98/Me вместо этого используйте Wbemcntl.) Вы можете отключить или повторно включить ведение журнала, изменить каталог, в котором хранятся файлы журналов WMI, а также задать максимальный размер таких файлов. Дополнительные сведения см. в разделе Файлы журналов WMI.