次の方法で共有


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 を返します。 指定属性に関してピンが優先データ形式を持っていない場合は、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 のサイズに設定する必要があります。 属性が 1 つある場合は、次のように計算できます。

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