KS 引脚使用 KSDATAFORMAT 和 KSDATARANGE 结构指定数据格式和范围。 数据格式指定数据流的单个属性,例如音频采样大小为 16 位。 数据范围指定多种格式,例如 16-24 位的音频采样范围。
微型驱动程序在其提供的每个 KSPIN_DESCRIPTOR 结构中包含一个 KSDATARANGE 结构的数组。 Microsoft提供的格式在 ksmedia.h 中枚举。
KSDATARANGE 结构的成员与 KSDATAFORMAT 结构相同;但是,微型驱动程序可以为 KSDATARANGE 的主要格式、子格式和说明符成员指定通配符值。
微型驱动程序使用这些结构的扩展版本来定义特定于媒体的值。 若要了解在音频和视频捕获中的工作原理,请参阅: 音频数据格式和数据范围 以及 选择流格式。
客户端使用以下属性来查询由特定引脚工厂在筛选器上实例化的引脚的数据格式支持:
KSPROPERTY_PIN_DATARANGES。 KS 筛选器报告所有由引脚工厂实例化的支持的数据范围。 这包括引脚 可以 支持的每个数据格式。
KSPROPERTY_PIN_CONSTRAINEDDATARANGES。 根据当前的内部驱动程序状态,KS 筛选器报告由引脚工厂实例化的引脚支持的所有数据范围。
KSPROPERTY_PIN_PROPOSEDATAFORMAT。 客户端可以使用此属性来查询由引脚工厂实例化的引脚是否支持特定数据格式。
KSPROPERTY_PIN_DATAINTERSECTION。 客户端可以使用此属性提供一系列数据格式。
一旦引脚实例化后,用户模式客户端可以通过 KSPROPSETID_Connection 属性请求来确定当前数据格式或请求更改数据格式。 例如,客户端使用 KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT 来判断引脚是否支持给定的数据格式。 客户端使用 KSPROPERTY_CONNECTION_DATAFORMAT 更改数据格式。
KS 微型驱动程序和客户端可以动态协商数据格式。 当流的数据格式发生更改时,微型驱动程序会在 KSSTREAM_HEADER 结构中的 OptionsFlags 成员中指定 KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY 标志。 微型驱动程序在相应的数据缓冲区中传递 KSDATAFORMAT 结构中描述的新数据格式本身。