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 데이터 구조를 반환하는 경우 시스템은 이를 시스템 이벤트 로그에 기록합니다. 또한 시스템은 IoWMIWriteEvent 및 WmiFireEvent 에 대한 잘못된 호출을 기록하여 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 로그 파일을 참조하세요.