Udostępnij przez


Domyślni obsługujący Data-Intersection

Zastrzeżona procedura obsługi przecięcia danych adaptera (metoda IMiniport::DataRangeIntersection obiektu miniportu) może odmówić wykonania sprawdzenia przecięcia danych, zwracając kod stanu STATUS_NOT_IMPLEMENTED. W takim przypadku domyślny obsługiwacz przecięcia danych sterownika portu wykonuje kontrolę w imieniu adaptera.

Można zaimplementować minimalną procedurę obsługi przecięcia danych dla sterownika adaptera jako metodę DataRangeIntersection, która odrzuca wszystkie żądania przecięcia danych, zwracając STATUS_NOT_IMPLEMENTED.

Bieżąca implementacja domyślnej procedury obsługi sterownika portu jest ograniczona w typach zakresów danych, które mogą obsłużyć:

  • Tylko formaty danych PCM

  • Tylko strumienie audio mono i stereo

Sterownik adaptera, który obsługuje formaty inne niż PCM lub wielokanałowe, powinien zaimplementować autorską obsługę przecięcia danych zamiast opierać się na sterowniku portu do obsługiwania przecięć danych dla tych formatów.

Ponadto program obsługi domyślnej obsługuje tylko formaty audio, które można określić za pomocą struktury KSDATAFORMAT_DSOUND lub KSDATAFORMAT_WAVEFORMATEX . Nie obsługuje żadnego formatu zawierającego strukturę WAVEFORMATEXTENSIBLE , która jest wymagana, na przykład w celu określenia maski kanału dla formatu zawierającego więcej niż dwa kanały.

Podczas wybierania wspólnego formatu między dwoma zakresami danych domyślny program obsługi sterownika portu zawsze wybiera najwyższą wartość w regionie przecięcia każdego parametru:

  • Jeśli przecięcie obejmuje więcej niż jedną prawidłową częstotliwość próbkowania (na przykład 11, 22 i 44 kHz), domyślny sterownik wybiera najwyższą częstotliwość.

  • Jeśli przecięcie obejmuje więcej niż jedną prawidłową wartość bitów na próbkę (na przykład 8, 16 i 32 bity), domyślna procedura obsługi wybiera największą wartość.

  • Jeśli przecięcie obejmuje zarówno formaty mono, jak i stereo, domyślny program obsługi wybiera stereo.

Jeśli domyślna procedura obsługi wybierze format, który jest niezadowalający, sterownik adaptera ma możliwość odrzucenia formatu przez niepowodzenie wywołania NewStream (na przykład zobacz IMiniportWavePci::NewStream), gdy SysAudio podejmuje próbę utworzenia pinu wyjściowego z formatem. Jeśli wywołanie zakończy się niepowodzeniem, SysAudio nie będzie kontynuować wyszukiwania punktów przecięcia danych. Zamiast tego podejmie próbę utworzenia połączenia, przechodząc przez listę formatów PCM obsługiwanych przez filtry systemowe, takie jak KMixer, dopóki nie odnajdzie takiego, który może obsługiwać również pin wyjściowy adaptera. Lista jest uporządkowana według formatów o wyższej jakości na początku. Tak jak poprzednio, adapter odrzuca niezadowalające formaty na liście, poprzez niepowodzenie wywołań NewStream dla tych formatów.