다음을 통해 공유


기본 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 호출에 실패하여 목록의 불만족스러운 형식을 거부합니다.