KSPROPERTY_PIN_PROPOSEDATAFORMAT2
OS 使用 KSPROPERTY_PIN_PROPOSEDATAFORMAT2 属性来确定驱动程序在给定指定属性的引脚上是否具有首选数据格式。
使用情况摘要表
获取 | 设置 | 目标 | 属性描述符类型 | 属性值类型 |
---|---|---|---|---|
是 | 否 | 筛选器 | 查看备注 | KSDATAFORMAT |
注解
属性描述符是一个KSP_PIN,后跟一个KSMULTIPLE_ITEM,指定KSMULTIPLE_ITEM后面的可变大小属性的计数。 每个属性都以 KSATTRIBUTE 标头开头,后跟特定于特性的数据。 属性充当属性请求的参数,指定建议的数据格式。
KSPROPERTY_PIN_PROPOSEDATAFORMAT2 包括 KSMULTIPLE_ITEM 类型的结构,
属性支持的唯一属性是 KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE ,它是使用 KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE 结构指定的。 请注意, KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE 结构以 KSATTRIBUTE 成员开头。 有关详细信息,请参阅 音频信号处理模式。
仅当引脚具有建议的格式时,才支持KSPROPERTY_TYPE_GET。 此函数允许音频驱动程序在给定指定属性的情况下提供有关引脚上默认数据格式的信息。
如果引脚具有指定属性的首选数据格式,KS 筛选器将返回STATUS_SUCCESS。 如果 pin 没有指定属性的首选数据格式,则返回STATUS_NOT_SUPPORTED。 对于任何其他故障,将返回相应的错误。 如果驱动程序支持此属性,OS 将始终将此格式用于特定信号处理模式。 此属性不支持KSPROPERTY_TYPE_SET。
下表提供了 KSPROPERTY_PIN_PROPOSEDATAFORMAT2 输入结构 PinProperty 元素的说明。
元素 | 说明 |
---|---|
PinProperty.Property.Set | PinProperty.Property.Set 应设置为所请求模式的 KSPROPSETID_Pin 。 |
PinProperty.Property.Id | PinProperty.Property.Id 始终设置为 KSPROPERTY_PIN_PROPOSEDATAFORMAT2。 |
PinProperty.Property.Flags | 可以将 PinProperty.Property.Flags 设置为 KSPROPERTY_TYPE_GET 或 KSPROPERTY_TYPE_BASICSUPPORT 以查找有关属性的基本信息。 |
PinProperty.PinId | PinProperty.PinId 标识 KSPROPERTY_PIN_PROPOSEDATAFORMAT2 请求的目标引脚。 |
PinProperty.Reserved | PinProperty.Reserved 保留供将来使用,应始终设置为零 (0) 。 |
下表提供了 KSPROPERTY_PIN_PROPOSEDATAFORMAT2 输入结构 Attributes 元素的说明。
元素 | 说明 |
---|---|
Attributes.Count | Attributes.Count 应设置为属性数,通常为 1 (1) 。 |
Attributes.Size | Attributes.Size 应设置为 ProposeDataformat2Input 的大小。 当有一个属性时,可以按如下所示进行计算:sizeof(ProposeDataformat2Input) |
下表提供了 KSPROPERTY_PIN_PROPOSEDATAFORMAT2 输入结构 SignalProcessingModeAttribute 元素的说明。
元素 | 说明 |
---|---|
SignalProcessingModeAttribute.AttributeHeader.Attribute | AttributeHeader.Attribute 元素应设置为所需的KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE。 |
SignalProcessingModeAttribute.AttributeHeader.Flags | Flags 元素保留供将来使用,应始终设置为零 (0) 。 |
SignalProcessingModeAttribute.AttributeHeader.Size | AttributeHeader.Size 指示 KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE的大小。 可以按如下方式计算:sizeof(KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE) |
SignalProcessingModeAttribute.SignalProcessingMode | SignalProcessingMode 元素应设置为请求的 SIGNALPROCESSINGMODE,例如,AUDIO_SIGNALPROCESSINGMODE_DEFAULT。 |
若要使用 KSPROPERTY_PIN_PROPOSEDATAFORMAT2 请定义以下结构。
typedef struct
{
KSP_PIN PinProperty;
KSMULTIPLE_ITEM Attributes;
KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE SignalProcessingModeAttribute;
} ProposeDataformat2Input;
此代码示例演示如何初始化 结构。
ProposeDataformat2Input input = {0};
input.PinProperty.Property.Set = KSPROPSETID_Pin;
input.PinProperty.Property.Id = KSPROPERTY_PIN_PROPOSEDATAFORMAT2;
input.PinProperty.Property.Flags = KSPROPERTY_TYPE_GET;
input.PinProperty.PinId = m_nPinId;
input.PinProperty.Reserved = 0;
input.Attributes.Count = 1;
input.Attributes.Size = sizeof(ProposeDataformat2Input) - RTL_SIZEOF_THROUGH_FIELD(ProposeDataformat2Input, PinProperty);
input.SignalProcessingModeAttribute.AttributeHeader.Attribute = KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE;
input.SignalProcessingModeAttribute.AttributeHeader.Flags = 0;
input.SignalProcessingModeAttribute.AttributeHeader.Size = sizeof(KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE);
input.SignalProcessingModeAttribute.SignalProcessingMode = gProcessingMode;
要求
版本:从Windows 8.1开始可用
标头: ks.h (包括 Ks.h)