다음을 통해 공유


기본 Data-Intersection 처리기

어댑터의 전용 데이터 교차 처리기(미니포트 드라이버 개체의 IMiniport::D ataRangeIntersection 메서드)는 STATUS_NOT_IMPLEMENTED 상태 코드를 반환하여 데이터 교차 검사 수행하는 것을 거부할 수 있습니다. 이 경우 포트 드라이버의 기본 데이터 교차 처리기는 어댑터를 대신하여 검사 수행합니다.

STATUS_NOT_IMPLEMENTED 반환하여 모든 데이터 교차 요청을 거부하는 DataRangeIntersection 메서드로 어댑터 드라이버에 대한 최소 데이터 교차 처리기를 구현할 수 있습니다.

포트 드라이버의 기본 처리기의 현재 구현은 처리할 수 있는 데이터 범위 형식으로 제한됩니다.

  • PCM 데이터 형식만

  • 모노 및 스테레오 오디오 스트림만

비 PCM 또는 다중 채널 형식을 지원하는 어댑터 드라이버는 포트 드라이버에 의존하여 이러한 형식에 대한 데이터 교차를 처리하는 대신 독점 데이터 교차 처리기를 구현해야 합니다.

또한 기본 처리기는 KSDATAFORMAT_DSOUND 또는KSDATAFORMAT_WAVEFORMATEX 구조체로 지정할 수 있는 오디오 형식만 지원합니다. 예를 들어 두 개 이상의 채널이 있는 형식의 채널 마스크를 지정하는 데 필요한 WAVEFORMATEXTENSIBLE 구조체가 포함된 형식은 지원하지 않습니다.

두 데이터 범위 간의 교차에서 공통 형식을 선택할 때 포트 드라이버의 기본 처리기는 항상 각 매개 변수의 교차 영역에서 가장 높은 값을 선택합니다.

  • 교차가 둘 이상의 유효한 샘플 주파수(예: 11, 22 및 44kHz)에 걸쳐 있는 경우 기본 처리기는 가장 높은 빈도를 선택합니다.

  • 교차가 샘플당 유효한 비트 수 값(예: 8, 16 및 32비트)을 초과하는 경우 기본 처리기는 가장 큰 값을 선택합니다.

  • 교집합이 모노 형식과 스테레오 형식 모두에 걸쳐 있는 경우 기본 처리기는 스테레오를 선택합니다.

기본 처리기가 만족스럽지 않은 형식을 선택하는 경우 어댑터 드라이버는 SysAudio가 형식으로 싱크 핀을 만들려고 할 때 NewStream 호출(예: IMiniportWavePci::NewStream 참조)에 실패하여 형식을 거부할 수 있습니다. 호출이 실패하면 SysAudio는 데이터 교차를 계속 찾지 않습니다. 대신 어댑터의 싱크 핀이 지원할 수 있는 것을 발견할 때까지 KMixer와 같은 시스템 필터에서 지원하는 PCM 형식 목록을 반복하여 연결을 만들려고 시도합니다. 목록은 먼저 더 높은 품질 형식으로 정렬됩니다. 이전과 마찬가지로 어댑터는 해당 형식에 대한 NewStream 호출에 실패하여 목록에서 불만족스러운 형식을 거부합니다.