다음을 통해 공유


엔드포인트 ID 문자열

Windows Vista에서 시스템은 엔드포인트 ID 문자열을 생성하여 시스템의 오디오 엔드포인트 디바이스 를 식별합니다. 엔드포인트 ID 문자열은 null로 끝나는 와이드 문자 문자열입니다. 특정 오디오 엔드포인트 디바이스에 대한 엔드포인트 ID 문자열은 시스템의 모든 오디오 엔드포인트 디바이스에서 디바이스를 고유하게 식별합니다.

시스템에 두 개 이상의 동일한 오디오 어댑터 디바이스가 포함된 경우 해당 오디오 엔드포인트 디바이스의 이름은 동일하지만 각 엔드포인트 디바이스에는 고유한 엔드포인트 ID 문자열이 있습니다. 엔드포인트 디바이스의 이름을 가져오는 방법에 대한 자세한 내용은 디바이스 속성을 참조하세요.

오디오 엔드포인트 디바이스에 대한 IMMDevice 인터페이스 instance 가져온 후 클라이언트는 IMMDevice::GetId 메서드를 호출하여 디바이스에 대한 엔드포인트 ID 문자열을 가져올 수 있습니다. 클라이언트는 엔드포인트 ID 문자열을 사용하여 나중에 또는 다른 프로세스에서 IMMDeviceEnumerator::GetDevice 메서드를 호출하여 오디오 엔드포인트 디바이스의 instance 만들 수 있습니다.

클라이언트는 오디오 엔드포인트 디바이스의 상태 변경될 때 알림을 받도록 정렬할 수 있습니다. 알림을 수신하기 위해 클라이언트는 IMMNotificationClient 인터페이스를 구현하고 해당 인터페이스를 MMDevice API에 등록합니다. 엔드포인트 디바이스의 상태 변경되면 MMDevice API는 클라이언트의 EDataFlow 인터페이스에서 적절한 메서드를 호출합니다. 메서드에 대한 입력 매개 변수 중 하나는 상태 변경된 엔드포인트 디바이스를 식별하는 엔드포인트 ID 문자열입니다. EDataFlow에 대한 자세한 내용은 디바이스 이벤트를 참조하세요.

DirectSound 및 Windows 멀티미디어 함수와 같은 레거시 오디오 API에는 오디오 디바이스를 열거하고 식별하기 위한 자체 인터페이스가 있습니다. Windows Vista에서 이러한 인터페이스는 API에서 제공하는 디바이스 추상화의 기초가 되는 엔드포인트 디바이스를 식별하는 엔드포인트 ID 문자열을 제공하기 위해 확장되었습니다.

DirectSound 디바이스 열거 중에 DirectSound는 열거하는 각 디바이스에 대한 엔드포인트 ID 문자열을 제공합니다. 자세한 내용은 레거시 오디오 애플리케이션에 대한 오디오 이벤트를 참조하세요.

레거시 파형 디바이스에 대한 엔드포인트 ID 문자열을 가져오려면 waveOutMessage 또는 waveInMessage 함수를 사용하여 파형 디바이스 드라이버에 DRV_QUERYFUNCTIONINSTANCEID 메시지를 보냅니다. 이 메시지의 사용을 보여 주는 코드 예제는 레거시 Windows 멀티미디어 애플리케이션에 대한 디바이스 역할을 참조하세요.

핵심 오디오 API의 기능을 사용하여 레거시 오디오 API를 사용하는 애플리케이션을 향상시키는 방법에 대한 자세한 내용은 레거시 오디오 API와의 상호 운용성을 참조하세요.

클라이언트는 엔드포인트 ID 문자열의 내용을 불투명으로 처리해야 합니다. 즉, 클라이언트는 디바이스에 대한 정보를 얻기 위해 문자열의 내용을 구문 분석하려고 시도해서는 안 됩니다. 그 이유는 문자열 형식이 정의되지 않았고 MMDevice API 시스템 모듈의 한 구현에서 다음 구현으로 변경될 수 있기 때문입니다.

엔드포인트 ID 문자열의 수명은 디바이스 설치에 연결됩니다. 사용자가 디바이스 드라이버를 업그레이드하거나 사용자가 디바이스를 제거하고 다시 설치하는 경우 디바이스의 엔드포인트 ID 문자열이 변경됩니다. 그러나 시스템 다시 시작 시 엔드포인트 ID 문자열은 변경되지 않고 사용자가 디바이스를 분리하고 다시 연결하는 경우 USB 오디오 디바이스의 엔드포인트 ID 문자열은 변경되지 않은 상태로 유지됩니다.

오디오 엔드포인트 디바이스