Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
KS-Pins geben Datenformate und Bereiche mithilfe der KSDATAFORMAT - und KSDATARANGE-Strukturen an. Ein Datenformat gibt ein einzelnes Attribut eines Datenstroms an, z. B. eine Audiosamplinggröße von 16 Bit. Ein Datenbereich gibt mehrere Formate an, z. B. einen Audio-Samplingbereich von 16-24 Bit.
Ein Minidriver enthält ein Array von KSDATARANGE-Strukturen in jeder KSPIN_DESCRIPTOR Struktur, die es bereitstellt. Von Microsoft bereitgestellte Formate werden in ksmedia.h aufgezählt.
Eine KSDATARANGE-Struktur weist dieselben Elemente wie eine KSDATAFORMAT-Struktur auf; Der Minidriver kann jedoch Wildcardwerte für die Hauptformat-, Unterformat- und Bezeichnerm-Elemente von KSDATARANGE angeben.
Minidriver verwenden erweiterte Versionen dieser Strukturen, um medienspezifische Werte zu definieren. Informationen dazu, wie dies in der Audio- und Videoaufnahme funktioniert, finden Sie unter: Audiodatenformate und Datenbereiche und Auswählen eines Datenstromformats.
Clients verwenden die folgenden Eigenschaften, um die Unterstützung des Datenformats von Pins abzufragen, die von einer bestimmten Pinfactory auf dem Filter instanziiert werden:
KSPROPERTY_PIN_DATARANGES. Der KS-Filter meldet alle Datenbereiche, die von Pins unterstützt werden, die von der Pin-Factory instanziiert wurden. Dazu gehört jedes Datenformat, das der Pin jemals unterstützen kann.
KSPROPERTY_PIN_CONSTRAINEDDATARANGES. Der KS-Filter meldet alle Datenbereiche, die von der Pin-Factory instanziierten Pins unterstützt werden, je nach aktuellem internem Treiberstatus.
KSPROPERTY_PIN_PROPOSEDATAFORMAT. Clients können diese Eigenschaft verwenden, um abzufragen, ob von der Pinfactory instanziierte Pins ein bestimmtes Datenformat unterstützen.
KSPROPERTY_PIN_DATAINTERSECTION. Clients können diese Eigenschaft verwenden, um eine Reihe von Datenformaten anzubieten.
Sobald ein Pin instanziiert wurde, kann ein Benutzermodusclient das aktuelle Datenformat ermitteln oder eine Änderung des Datenformats über KSPROPSETID_Connection Eigenschaftsanforderungen anfordert. Der Client verwendet z. B. KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT , um festzustellen, ob eine Pin ein bestimmtes Datenformat unterstützt. Der Client verwendet KSPROPERTY_CONNECTION_DATAFORMAT , um das Datenformat zu ändern.
KS-Minidriver und Clients können Datenformate dynamisch aushandeln. Wenn sich das Datenformat eines Datenstroms ändert, spezifiziert der Minidriver die KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY-Flagge im OptionsFlags-Element eines KSSTREAM_HEADER. Der Minidriver übergibt das neue Datenformat selbst, das in einer KSDATAFORMAT-Struktur beschrieben ist, im entsprechenden Datenpuffer.