다음을 통해 공유


장치 드라이버에서 데이터 액세스

WDM(Windows 드라이버 모델) 공급자는 WDM 모델을 준수하는 하드웨어 드라이버의 클래스, 인스턴스, 메서드 및 이벤트에 대한 액세스 권한을 부여합니다. 하드웨어 드라이버의 클래스는 \\root\wmi 네임스페이스에 있습니다.

WDM 공급자는 장치 드라이버를 작성하는 사람과 장치 드라이버 데이터에 관심이 있는 관리자에게 유용합니다.

이 항목에서 다루는 섹션은 다음과 같습니다.

장치 드라이버 작성자를 위한 정보

특정 장치 드라이버와 관련된 WMI 클래스는 WDM 공급자가 장치 드라이버 실행 파일에서 바이너리 MOF를 추출할 때 생성됩니다. 이는 WMI가 시작되거나 새 장치 드라이버가 설치되거나 특정 드라이버에 대한 WMIBinaryMofResource 인스턴스가 삭제될 때마다 발생합니다. Wmiprov.log를 확인하면 바이너리 MOF 파일을 추출하는 동안 오류가 발생했는지 확인할 수 있습니다. mofcomp 오류에 대한 자세한 내용은 Mofcomp.log에 보고됩니다. 자세한 내용은 WMI 로그 파일을 참조하세요. 성능상의 이유로 WDM 공급자는 WDM 공급자 시작 또는 중지로 인해 클래스를 생성하거나 삭제하는 동안 이벤트를 생성하지 않습니다.

WDM 공급자는 모든 WNODE 데이터를 클래스 정보로 변환합니다. 데이터를 WNODE에서 클래스 데이터로 변환할 때 오류가 발생하면 헤더 형식이 지정된 Wmiprov.log에 보고되고 바이트는 메모리 덤프와 동일한 형식으로 렌더링됩니다.

드라이버 보안 설정에 대한 변경 사항은 WDM 공급자가 언로드되고 다시 로드될 때까지 적용되지 않습니다. 자세한 내용은 공급자 언로드를 참조하세요.

WMI는 또한 사용 가능한 하드웨어 드라이버에 대한 고성능 카운터를 만들 수 있습니다. 고성능 클래스를 만들고 Perfmon System Monitor에 데이터를 표시하는 방법에 대한 자세한 내용은 인스턴스 공급자의 효율성 향상을 참조하세요. WMI 지원 장치 드라이버 작성에 대한 자세한 내용은 https://www.microsoft.com/ddk을 참조하세요. MOF 파일의 WDM 특정 한정자에 대한 자세한 내용은 WDM 공급자와 관련된 한정자를 참조하세요.

드라이버 데이터의 관리자 및 사용자를 위한 정보

WMIBinaryMofResource 클래스의 인스턴스를 나열하면 시스템의 드라이버 목록과 WDM 공급자가 각 드라이버에 대한 MOF 컴파일에 성공했는지 여부에 대한 정보가 제공됩니다. 해당 드라이버를 나타내는 WMIBinaryMofResource의 인스턴스를 삭제하여 공급자가 드라이버에 대한 클래스를 다시 컴파일하고 재생성하도록 강제할 수 있습니다. mofcomp 오류에 대한 자세한 내용은 Mofcomp.log에 보고됩니다.

WMI 네임스페이스가 손상된 경우 WDM이 드라이버 클래스를 다시 빌드하도록 강제하기 위해 이를 삭제하고 다시 열 수 있습니다. 네임스페이스 열기에 대한 자세한 내용은 WMI 내에서 계층 구조 만들기를 참조하세요.

드라이버 로드가 중단되거나 다른 비정상적인 작업이 발생하면 드라이버 클래스가 때때로 "좌초"될 수 있습니다. WDM 공급자는 새 드라이버가 설치되거나 Software\Microsoft\WBEM\WDMProvider 레지스트리 키 값 ProcessStrandedClassesTRUE로 설정된 경우에만 "좌초된" 클래스를 검색하고 정리합니다. 이 값을 TRUE로 설정하면 정리 작업으로 인해 WMI 시작 성능이 느려집니다. 기본값은 FALSE입니다. WDM 공급자는 "Root\Wmi" 네임스페이스가 처음으로 열릴 때만 이 레지스트리 값을 확인합니다.

WDM 장치 드라이버에 대한 보안 변경 사항이 있는 경우 WDM 공급자가 언로드되고 다시 로드될 때까지 변경 사항이 적용되지 않습니다. 이 작업을 수행하려면 Windows 관리 서비스를 중지하고 다시 시작해야 합니다.

WMI 사용