다음을 통해 공유


핀 데이터 범위 지정

디바이스의 데이터 경로 및 제어 노드를 나타내는 토폴로지를 정의한 후 다음 단계는 구성 가능한 각 핀에 대한 데이터 범위를 정의하는 것입니다. 구성 가능한 핀을 만들고 구성하며 소프트웨어 제어 하에 웨이브 또는 MIDI 스트림에 연결할 수 있습니다. 반면, 물리적 연결 또는 브리지 핀은 암시적으로 존재하며 소프트웨어 제어 하에 만들거나 구성할 수 없습니다.

구성 가능한 핀을 연결하여 웨이브 또는 MIDI 스트림의 싱크 또는 원본으로 사용하려면 먼저 스트림의 데이터 형식을 처리하도록 핀을 구성해야 합니다. 일반적으로 핀은 여러 스트림 형식 중 하나를 허용하도록 구성할 수 있습니다. 예를 들어 PCM 웨이브 출력 핀은 다음과 같은 PCM 스트림 매개 변수 범위를 수락할 수 있습니다.

  • 샘플 속도 11.025kHz, 22.05kHz, 44.1kHz 및 48kHz

  • 8비트, 16비트, 24비트 및 32비트 샘플 크기

  • 1에서 8까지의 채널 수

구성 가능한 핀의 각 유형에 대해 미니포트 드라이버는 핀이 처리할 수 있는 다양한 스트림 데이터 형식을 설명합니다. 다음 코드 예제와 같이 이러한 매개 변수 범위를 데이터 범위 설명자의 배열로 지정할 수 있습니다.

static KSDATARANGE_AUDIO PinDataRangesPcm[] =
{
    {
        {
            sizeof(KSDATARANGE_AUDIO),
            0,
            0,
            0,
            STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
            STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
            STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
        },
        8,       // Maximum number of channels
        8,       // Minimum number of bits-per-sample
        32,      // Maximum number of bits-per-channel
        11025,   // Minimum rate
        48000    // Maximum rate
    }
};

앞의 PinDataRangesPcm 예제의 배열에는 KSDATARANGE_AUDIO 형식의 단일 데이터 범위 설명자가 포함되어 있습니다. 일반적으로 데이터 범위 배열에는 임의의 수의 설명자가 포함될 수 있습니다. 예를 들어 PCM이 아닌 웨이브 출력 핀은 AC-3 over-S/PDIF 및 WMA Pro-over-S/PDIF 형식을 모두 지원할 수 있습니다. 이러한 두 형식은 각각 별도의 데이터 범위 설명자로 지정됩니다. 따라서 핀의 데이터 범위 배열에는 두 개 이상의 KSDATARANGE_AUDIO 구조체가 포함됩니다.

DirectMusic 또는 Windows 멀티미디어 midiInXxx 및 midiOutXxx 함수를 사용하는 애플리케이션에서 음악 스트림 형식을 지원하는 구성 가능한 핀은 KSDATARANGE_MUSIC 형식의 데이터 범위 설명자를 사용합니다.

포트 드라이버는 미니포트 드라이버에서 데이터 범위 정보를 가져오고 가능한 경우 이 정보를 사용하여 각 핀이 지원할 수 있는 데이터 형식에 대한 정보 요청을 처리합니다. 간단한 PCM 데이터 범위가 있는 핀의 경우 포트 드라이버는 해당 핀에 대한 교차 요청을 처리할 수 있습니다. 교차 요청에서 클라이언트는 스트림에 대해 가능한 데이터 형식을 나타내는 데이터 범위 집합을 제공합니다. 가능하면 포트 드라이버의 교차 처리기는 핀의 데이터 범위 내에 속하는 요청의 데이터 범위에서 특정 데이터 형식을 선택합니다. 이 형식은 두 데이터 범위 집합의 교집합을 나타냅니다. 따라서 클라이언트와 핀 모두 이 형식으로 스트림을 처리할 수 있습니다. 더 복잡한 데이터 범위의 경우 미니포트 드라이버는 자체 교차 처리기를 제공할 수 있으며, 포트 드라이버는 자체 기본 처리기 대신 를 사용합니다. 미니포트 드라이버의 교차 처리기는 포트 드라이버에 데이터 범위 배열로 표현하기 어려울 수 있는 모든 형식 요구 사항을 허용할 수 있습니다. 자세한 내용은 데이터 교차 처리기다중 채널 오디오 데이터 및 WAVE 파일을 참조하세요.