Freigeben über


Standardhandler für Data-Intersection

Der proprietäre Datenüberschneidungshandler eines Adapters (die IMiniport::D ataRangeIntersection-Methode des Miniporttreiberobjekts) kann die Durchführung der Datenüberschneidungsprüfung ablehnen, indem der STATUS_NOT_IMPLEMENTED status Code zurückgegeben wird. In diesem Fall führt der Standarddatenschnitthandler des Porttreibers die Überprüfung im Namen des Adapters durch.

Sie können einen minimalen Datenschnitthandler für Ihren Adaptertreiber als DataRangeIntersection-Methode implementieren, die alle Datenüberschneidungsanforderungen ablehnt, indem Sie STATUS_NOT_IMPLEMENTED zurückgeben.

Die aktuelle Implementierung des Standardhandlers des Porttreibers ist auf die Typen von Datenbereichen beschränkt, die er verarbeiten kann:

  • Nur PCM-Datenformate

  • Nur Mono- und Stereo-Audiostreams

Ein Adaptertreiber, der Nicht-PCM- oder Mehrkanalformate unterstützt, sollte einen proprietären Datenschnitthandler implementieren, anstatt sich auf den Porttreiber zu verlassen, um Datenkreuzungen für diese Formate zu verarbeiten.

Darüber hinaus unterstützt der Standardhandler nur Audioformate, die von einer KSDATAFORMAT_DSOUND - oder KSDATAFORMAT_WAVEFORMATEX-Struktur angegeben werden können. Es unterstützt kein Format, das eine WAVEFORMATEXTENSIBLE-Struktur enthält, die beispielsweise erforderlich ist, um die Kanalmaske für ein Format mit mehr als zwei Kanälen anzugeben.

Wenn Sie ein allgemeines Format aus der Schnittmenge zwischen zwei Datenbereichen auswählen, wählt der Standardhandler des Porttreibers immer den höchsten Wert in der Schnittmenge der einzelnen Parameter aus:

  • Wenn der Schnittpunkt mehrere gültige Stichprobenfrequenzen umfasst (z. B. 11, 22 und 44 kHz), wählt der Standardhandler die höchste Frequenz aus.

  • Wenn die Schnittmenge mehr als einen gültigen Bit pro Beispielwert umfasst (z. B. 8, 16 und 32 Bit), wählt der Standardhandler den größten Wert aus.

  • Wenn die Schnittmenge sowohl Mono- als auch Stereoformate umfasst, wählt der Standardhandler Stereo aus.

Wenn der Standardhandler ein nicht zufriedenstellendes Format auswählt, hat der Adaptertreiber die Möglichkeit, das Format abzulehnen, indem der NewStream-Aufruf fehlschlägt (z. B. siehe IMiniportWavePci::NewStream), wenn SysAudio versucht, eine Senkennadel mit dem Format zu erstellen. Wenn der Aufruf fehlschlägt, sucht SysAudio nicht mehr nach Datenschnitten. Stattdessen wird versucht, eine Verbindung herzustellen, indem eine Liste der PCM-Formate durchlaufen wird, die von Systemfiltern wie KMixer unterstützt werden, bis eines gefunden wird, das der Senkennadel des Adapters ebenfalls unterstützen kann. Die Liste wird zuerst mit höherwertigen Formaten sortiert. Wie zuvor lehnt der Adapter unbefriedigende Formate in der Liste ab, indem die NewStream-Aufrufe für diese Formate fehlschlagen.