설정 클래스 및 인터페이스 클래스
디바이스 인터페이스 클래스와 디바이스 설정 클래스의 두 가지 유형의 디바이스 클래스를 구분하는 것이 중요 합니다. 사용자 모드 코드에서는 동일한 디바이스 설치 함수 집합과 동일한 데이터 구조 집합(디바이스 정보 집합)이 두 클래스에 모두 사용되므로 두 가지가 쉽게 혼동될 수 있습니다. 또한 디바이스는 설정 클래스와 여러 인터페이스 클래스 모두에 동시에 속하는 경우가 많습니다. 그럼에도 불구하고 두 가지 유형의 클래스는 서로 다른 용도로 사용되고, 레지스트리의 다른 영역을 사용하며, 클래스 GUID를 정의하기 위해 다른 헤더 파일 집합을 사용합니다.
디바이스 설정 클래스는 동일한 방식으로 설치 및 구성된 디바이스를 그룹화하기 위한 메커니즘을 제공합니다. 예를 들어 모든 CD-ROM 드라이브는 CDROM 설정 클래스에 속합니다.
디바이스 인터페이스 클래스는 공유 특성 또는 기능에 따라 디바이스를 그룹화하기 위한 메커니즘을 제공합니다. 드라이버 및 사용자 애플리케이션은 개별 디바이스의 시스템에서 현재 상태를 추적하는 대신 등록하여 특정 인터페이스 클래스에 속한 모든 디바이스의 도착 또는 제거에 대한 알림을 받을 수 있습니다.
Windows 디바이스 설정 클래스는 시스템 파일 Devguid.h에 정의되어 있습니다. 이 파일은 설치 클래스에 대한 일련의 GUID를 정의합니다. 그러나 Devguid.h 에 표시되는 디바이스 설정 클래스는 디바이스 인터페이스 클래스와 혼동해서는 안 됩니다. Devguid.h 파일에는 설치 클래스에 대한 GUID만 포함됩니다.
인터페이스 클래스의 정의는 단일 파일에 제공되지 않습니다. 디바이스 인터페이스 클래스는 항상 특정 디바이스 클래스에만 속하는 헤더 파일에 정의됩니다. 예를 들어 Ntddmou.h 에는 마우스 인터페이스 클래스를 나타내는 GUID인 GUID_DEVINTERFACE_MOUSE 정의가 포함됩니다. Ntddpar.h 는 병렬 디바이스에 대한 인터페이스 클래스 GUID를 정의합니다. Ntddpcm.h 는 PCMCIA 디바이스에 대한 표준 인터페이스 클래스 GUID를 정의합니다. Ntddstor.h 는 스토리지 디바이스에 대한 인터페이스 클래스 GUID 등을 정의합니다.
디바이스 인터페이스 클래스와 관련된 헤더 파일의 GUID를 사용하여 디바이스 인터페이스의 instance 도착 알림을 등록해야 합니다. 드라이버가 인터페이스 클래스 GUID 대신 설치 클래스 GUID를 사용하여 알림을 등록하는 경우 인터페이스가 도착하면 알림이 표시되지 않습니다.
새 설치 클래스 또는 인터페이스 클래스를 정의할 때 는 단일 GUID를 사용하여 설치 클래스와 인터페이스 클래스를 모두 식별하지 마세요.
GUID에 대한 자세한 내용은 드라이버에서 GUID 사용을 참조하세요.