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)

另请参阅

KSP_PIN

KSDATAFORMAT

KSEVENT_PINCAPS_FORMATCHANGE

KS 属性

KSPROPERTY

KSPROPERTY_AUDIOSIGNALPROCESSING_MODES