다음을 통해 공유


오디오 속성 요청

Microsoft WDM(Windows 드라이버 모델) 오디오 드라이버의 클라이언트는 KS 속성 에 대한 요청을 드라이버가 인스턴스화한 KS 필터 및 핀으로 보낼 수 있습니다. 예를 들어 사용자 모드 클라이언트는 I/O 제어 코드가 IOCTL_KS_PROPERTY DeviceIoControl 함수(Microsoft Windows SDK 설명서 참조)를 호출하여 KS 속성 요청을 보낼 수 있습니다. 이 함수는 속성 요청이 포함된 IRP를 지정된 필터 또는 핀 개체로 보냅니다.

오디오 드라이버는 속성(KSPROPERTY_TYPE_GET, KSPROPERTY_TYPE_SET 및 KSPROPERTY_TYPE_BASICSUPPORT)에 대한 가져오기, 설정 및 기본 지원 요청을 지원합니다. 자세한 내용은 오디오 드라이버 속성 집합을 참조하세요.

클라이언트는 필터 속성, 핀 속성 및 노드 속성의 세 가지 종류의 속성에 대한 요청을 보낼 수 있습니다. 자세한 내용은 필터, 고정 및 노드 속성 참조하세요.

필터 속성 요청을 필터 개체로 보낼 때 클라이언트는 인스턴스 핸들을 통해 대상 필터를 지정 합니다(필터 팩터리 참조). 마찬가지로 핀 개체에 pin 속성 요청을 보낼 때 대상 핀은 인스턴스 핸들에 의해 지정됩니다( 핀 팩터리 참조). 두 요청 유형 모두 다음을 지정하는 KSPROPERTY 구조체를 포함합니다.

  • 속성 집합을 식별하는 GUID

  • 지정된 속성 집합 내의 속성 항목을 식별하는 인덱스입니다.

  • 속성 요청의 형식을 나타내는 플래그(get, set 또는 basic-support)

속성 집합을 형성하기 위해 관련 속성이 함께 수집됩니다. 특정 속성은 해당 속성 집합 및 해당 집합 내에서 해당 위치를 지정하는 인덱스로 식별됩니다.

노드 속성 요청에는 KSPROPERTY 구조와 노드 ID를 결합하는 KSNODEPROPERTY 구조체가 포함됩니다. 노드 속성에 따라 속성 요청의 대상은 필터 인스턴스 또는 핀 인스턴스입니다.

필터가 특정 노드 형식의 인스턴스를 둘 이상 만들 수 있는 경우 요청 대상은 핀 핸들에 의해 지정됩니다. 핸들은 노드 인스턴스가 있는 데이터 경로의 시작 또는 끝에 있는 핀 인스턴스를 식별합니다. SUM 또는 MUX 노드를 포함하는 필터의 경우( KSNODETYPE_SUMKSNODETYPE_MUX 참조) 다음 규칙이 적용됩니다.

  • 속성이 싱크(입력) 핀의 다운스트림에 있고 SUM 또는 MUX 노드의 업스트림에 있는 노드에 속하는 경우 속성 요청이 싱크 핀으로 전송됩니다.

  • 속성이 SUM 또는 MUX 노드의 다운스트림에 있고 원본(출력) 핀의 업스트림에 있는 노드에 속하는 경우 속성 요청이 원본 핀으로 전송됩니다. (또한 SUM 또는 MUX 노드에 대한 속성 요청이 원본 핀으로 전송됩니다.)

이러한 규칙을 사용하면 특정 데이터 경로의 특정 노드를 고유하게 식별할 수 있습니다.

믹서 API를 사용하여 데이터 경로의 노드를 트래버스하는 방법에 대한 자세한 내용은 커널 스트리밍 토폴로지에서 오디오 믹서 API 변환으로의 변환을 참조하세요.