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を含む)