KSPROPERTY_PIN_PROPOSEDATAFORMAT2
OS는 KSPROPERTY_PIN_PROPOSEDATAFORMAT2 속성을 사용하여 지정된 특성이 지정된 경우 드라이버가 핀에 기본 설정 데이터 형식이 있는지 확인합니다.
사용 요약 테이블
가져오기 | 설정 | 대상 | 속성 설명자 형식 | 속성 값 형식 |
---|---|---|---|---|
예 | 아니요 | 필터 | 설명 보기 | KSDATAFORMAT |
설명
속성 설명자는 KSP_PIN 뒤에 KSMULTIPLE_ITEM 따라 가변 크기 특성의 수를 지정하는 KSMULTIPLE_ITEM 입니다. 각 특성은 KSATTRIBUTE 헤더와 특성 관련 데이터로 시작합니다. 특성은 속성 요청에 대한 매개 변수 역할을 하며 제안된 데이터 형식을 지정합니다.
KSPROPERTY_PIN_PROPOSEDATAFORMAT2형식 KSMULTIPLE_ITEM 구조체를 포함합니다.
속성에 대해 지원되는 유일한 특성은 KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODEKSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE 구조를 사용하여 지정됩니다. KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE 구조체는 KSATTRIBUTE 멤버로 시작합니다. 자세한 내용은 오디오 신호 처리 모드를 참조하세요.
KSPROPERTY_TYPE_GET 핀에 제안된 형식이 있는 경우에만 지원됩니다. 이 함수를 사용하면 오디오 드라이버가 지정된 특성에 따라 핀의 기본 데이터 형식에 대한 정보를 제공할 수 있습니다.
고정에 지정된 특성에 대한 기본 데이터 형식이 있는 경우 KS 필터는 STATUS_SUCCESS 반환합니다. 핀에 지정된 특성에 대한 기본 설정 데이터 형식이 없으면 STATUS_NOT_SUPPORTED 반환합니다. 다른 오류의 경우 적절한 오류가 반환됩니다. 드라이버가 이 속성을 지원하는 경우 OS는 항상 특정 신호 처리 모드에 이 형식을 사용합니다. 이 속성에는 KSPROPERTY_TYPE_SET 지원되지 않습니다.
다음 표에서는 KSPROPERTY_PIN_PROPOSEDATAFORMAT2 입력 구조 PinProperty 요소에 대한 설명을 제공합니다.
요소 | Description |
---|---|
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 입력 구조 특성 요소에 대한 설명을 제공합니다.
요소 | Description |
---|---|
Attributes.Count | Attributes.Count는 특성 수(일반적으로 1)로 설정해야 합니다. |
Attributes.Size | Attributes.Size는 ProposeDataformat2Input의 크기로 설정해야 합니다. 특성이 하나 있는 경우 다음과 같이 계산할 수 있습니다.sizeof(ProposeDataformat2Input) |
다음 표에서는 KSPROPERTY_PIN_PROPOSEDATAFORMAT2 입력 구조 SignalProcessingModeAttribute 요소에 대한 설명을 제공합니다.
요소 | Description |
---|---|
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 포함)