Share via


WMI 드라이버 지원을 테스트하기 위한 일반적인 기술

WMI 클라이언트 도구

드라이버에서 WMI 지원을 테스트하는 데 사용할 수 있는 몇 가지 도구가 있습니다.

Wbemtest
운영 체제에는 WMI 클래스 및 클래스 인스턴스를 쿼리하고, 속성 값을 변경하고, 메서드를 실행하고, 이벤트 알림을 수신하는 데 사용할 수 있는 GUI를 제공하는 Wbemtest 도구가 포함되어 있습니다. "root\wmi" 네임스페이스에 연결하여 드라이버의 지원을 테스트합니다.

Wmic
Microsoft Windows XP 이상 운영 체제에는 WMI 관련 명령을 실행하여 드라이버를 테스트하는 데 사용할 수 있는 명령 셸을 제공하는 Wmic 도구가 포함되어 있습니다.

Wmimofck
wmimofck 명령을 사용하여 이진 MOF 파일의 구문을 검사 수 있습니다. wmimofck -t 명령을 사용하여 VBScript 파일을 생성할 수도 있습니다. 이 스크립트를 사용하여 드라이버의 WMI 클래스 instance 쿼리 처리를 테스트할 수 있습니다. wmimofck -w 명령은 클래스 쿼리 및 설정, 메서드 실행 및 이벤트 수신을 테스트할 수 있는 웹 페이지를 생성합니다. 웹 페이지는 복잡한 매개 변수 또는 반환 값(예: 포함된 클래스의 배열)을 사용하는 실행 메서드를 지원하지 않습니다. 이러한 경우 대신 Wbemtest를 사용할 수 있습니다. Wmimofck에 대한 자세한 내용은 wmimofck.exe사용을 참조하세요.

WMI 사용자 모드 API를 사용하여 사용자 지정 WMI 클라이언트 애플리케이션을 작성하여 드라이버의 WMI 지원을 테스트할 수도 있습니다.

애플리케이션에서 WMI 정보를 제공하거나 사용할 수 있는 이 사용자 모드 API에 대한 자세한 내용은 Microsoft Windows SDK 설명서의 Windows Management Instrumentation 정보를 참조하세요.

WMI 클라이언트 애플리케이션은 드라이버를 테스트하기 위해 다음 작업을 수행합니다.

  • WMI에 연결합니다.

    WMI에 연결하기 위해 애플리케이션은 COM(구성 요소 개체 모델) 함수 인 CoCreateInstance를 호출하여 IWbemLocator 인터페이스에 대한 포인터를 검색할 수 있습니다. 그런 다음, 애플리케이션은 IWbemLocator::ConnectServer 메서드를 호출하여 WMI에 연결합니다. 이 호출에서 애플리케이션은 IWbemServices 인터페이스에 대한 포인터를 받습니다.

  • 드라이버의 정보에 액세스합니다.

    정보에 액세스하고 이벤트를 등록하기 위해 애플리케이션은 IWbemServices 인터페이스의 메서드를 사용합니다.

WMI IRP 및 시스템 이벤트 로그

커널 모드에서 엄격하게 발생하는 WMI 오류는 시스템 이벤트 로그에 기록됩니다. 이벤트 뷰어 사용하여 시스템 이벤트 로그를 검사할 수 있습니다. 자세한 내용은 로깅 오류를 참조하세요.

이러한 오류의 두 기본 원본은 WMI 요청에 대한 잘못된 형식의 회신과 이벤트 알림에 대한 잘못된 매개 변수입니다. 예를 들어 드라이버가 IRP_MN_REGINFO 또는 IRP_MN_REGINFO_EX 요청에 대한 응답으로 잘못된 형식의 WMIREGINFO 데이터 구조를 반환하는 경우 시스템은 이를 시스템 이벤트 로그에 기록합니다. 또한 시스템은 IoWMIWriteEventWmiFireEvent 에 대한 잘못된 호출을 기록하여 WMI 이벤트 알림을 발급합니다.

WMI WDM 공급자 로그

WMI WDM 공급자(Wmiprov.dll)에서 처리하는 동안 발생하는 WMI 오류는 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 로그 파일을 참조하세요.