미니포트 드라이버 속성 항목 요청

이 섹션에서는 DirectMusic 속성 항목 요청을 간략하게 소개합니다. 이 개념 및 기타 커널 스트리밍 개념에 대한 전체 개요는 커널 스트리밍에서 찾을 수 있습니다.

DirectMusic 미니포트 드라이버는 오디오 드라이버 속성 집합을 처리해야 합니다. 속성 요청은 두 부분으로 제공됩니다. 첫 번째 부분은 KSPROPERTY 구조체에 의해 정의된 속성 집합입니다. 두 번째는 속성 항목과 관련된 instance 데이터를 포함하는 데이터 버퍼입니다.

KSPROPERTY 구조체에는 다음이 포함됩니다.

KSPROPERTY의 Flags 멤버는 미니포트 드라이버에 요청된 작업을 지정하기 위해 다음 플래그 중 하나만 포함할 수 있습니다.

KSPROPERTY_TYPE_GET
지정된 속성 항목의 값을 검색합니다.

KSPROPERTY_TYPE_SET
지정된 속성 항목의 값을 설정하려면

KSPROPERTY_TYPE_BASICSUPPORT
속성 집합에 사용할 수 있는 지원 유형을 확인합니다. *pvPropertyData에서 반환된 데이터는 가능한 작업을 나타내는 KSPROPERTY_TYPE_GET 및 KSPROPERTY_TYPE_SET 하나 또는 둘 다를 포함하는 DWORD입니다.

속성 항목 요청의 두 번째 부분은 미니포트 드라이버에 데이터를 전달하는 데 사용할 수 있는 버퍼인 instance 데이터입니다. 이 버퍼를 사용하는 방법은 요청이 SET인지 GET인지에 따라 달라집니다.

  • 요청이 KSPROPERTY_TYPE_SET 경우 instance 데이터가 미니포트 드라이버로 전송되지만 요청자에게는 반환되지 않습니다.

  • 요청이 KSPROPERTY_TYPE_GET 경우 instance 데이터가 미니포트 드라이버에 채워지고 요청자에게 반환됩니다.

속성 항목 요청은 미니포트 드라이버 토폴로지의 특정 노드로 전달될 수 있습니다. 미니포트 드라이버 토폴로지에서는 드라이버와 기본 하드웨어의 레이아웃을 설명합니다. 토폴로지 내에는 요청 시 사용할 수 있는 핀 인스턴스가 있는지 여부에 관계없이 속성 항목을 보낼 수 있는 노드가 있을 수 있습니다.

DirectMusic 재생을 위해 핀 instance 만들어야 합니다. DirectMusic 데이터는 KSNODETYPE_DMSYNTH 형식의 노드로 전송됩니다. 다음은 미니포트 드라이버 연결의 예입니다.

  • 의 스트림을 신디사이저에 연결합니다.

    PCFILTER_NODE 핀 0(out) -> 노드 0 핀 1(in)

  • 오디오 출력에 신디사이저 연결:

    노드 0 핀 0(out) -> PCFILTER_NODE 핀 1(in)

지원되는 데이터 형식은 핀이 데이터를 받을 수 있는 형식을 지정하는 데이터 범위입니다.

DirectMusic이 미니포트 드라이버에 데이터를 보낼 수 있도록 미니포트 드라이버의 토폴로지에서 directMusic 형식(STATIC_KSDATAFORMAT_SUBTYPE_DIRECTMUSIC)을 정의해야 합니다. 이 형식은 dmusbuff.h의 DMUS_EVENTHEADER 구조체(Microsoft Windows SDK 설명서 참조)에 의해 정의됩니다. 미니포트 드라이버가 이 특정 데이터 범위를 지원하도록 지정하면 DirectMusic은 포트 자체의 핀을 통해 해당 데이터 범위를 사용자에게 노출할 수 있습니다.