Freigeben über


Standardmäßiger Datenschnittstellenhandler

Der proprietäre Daten-Schnittmengen-Handler eines Adapters (die IMiniport::DataRangeIntersection-Methode des Miniport-Treiberobjekts) kann die Überprüfung der Daten-Schnittmenge ablehnen, indem sie den Statuscode STATUS_NOT_IMPLEMENTED zurückgibt. In diesem Fall führt der Standarddatenschnittpunkthandler des Porttreibers die Überprüfung im Auftrag des Adapters aus.

Sie können einen minimalen Daten-Schnittmengen-Handler für Ihren Adaptertreiber als DataRangeIntersection-Methode implementieren, die alle Daten-Schnittmengenanforderungen ablehnt, indem sie STATUS_NOT_IMPLEMENTED zurückgibt.

Die aktuelle Implementierung des Standardhandlers des Porttreibers ist in den Datentypen beschränkt, die er verarbeiten kann:

  • Nur PCM-Datenformate

  • Nur Mono- und Stereo-Audiodatenströme

Ein Adaptertreiber, der Nicht-PCM- oder Multichannelformate unterstützt, sollte einen proprietären Datenschnittpunkthandler 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 durch eine KSDATAFORMAT_DSOUND oder KSDATAFORMAT_WAVEFORMATEX Struktur angegeben werden können. Es unterstützt kein Format, das eine WAVEFORMATEXTENSIBLE-Struktur enthält, die z. B. erforderlich ist, um die Kanalmaskierung für ein Format mit mehr als zwei Kanälen anzugeben.

Wenn Sie ein gemeinsames Format aus dem Schnittpunkt zwischen zwei Datenbereichen auswählen, wählt der Standardhandler des Porttreibers immer den höchsten Wert im Schnittpunktbereich jedes Parameters aus:

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

  • Wenn die Schnittmenge mehr als einen gültigen Wert für Bits pro Sample (z. B. 8, 16 und 32 Bit) umfasst, wählt der Standard-Handler den größten Wert aus.

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

Wenn der Standardhandler ein Format auswählt, das nicht zufriedenstellend ist, hat der Adaptertreiber die Möglichkeit, das Format abzulehnen, indem der NewStream-Aufruf fehlschlägt (z. B. siehe IMiniportWavePci::NewStream), wenn SysAudio versucht, einen Sink-Pin mit dem Format zu erstellen. Wenn der Aufruf fehlschlägt, sucht SysAudio nicht weiter nach Datenkreuzungen. Stattdessen wird versucht, eine Verbindung herzustellen, indem eine Liste der PCM-Formate durchlaufen wird, die von Systemfiltern wie z. B. KMixer unterstützt werden, bis ein Format gefunden wird, das auch vom Sink-Pin des Adapters unterstützt werden kann. Die Liste wird zuerst mit Formaten mit höherer Qualität sortiert. Wie zuvor lehnt der Adapter nicht zufriedenstellende Formate in der Liste ab, indem die NewStream-Aufrufe für diese Formate fehlschlagen.