KSPROPERTY_PIN_PROPOSEDATAFORMAT2
OS 會使用 KSPROPERTY_PIN_PROPOSEDATAFORMAT2 屬性來判斷驅動程式在指定屬性的針腳上是否有慣用的資料格式。
使用量摘要資料表
Get | 集合 | 目標 | 屬性描述項類型 | 屬性值類型 |
---|---|---|---|---|
是 | 否 | 篩選 | 請參閱備註 | 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。 此函式可讓音訊驅動程式提供指定屬性之釘選上預設資料格式的相關資訊。
如果 pin 具有指定屬性的慣用資料格式,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) 。 |
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)