KSPROPERTY_PIN_PROPOSEDATAFORMAT2

O sistema operacional usa a propriedade KSPROPERTY_PIN_PROPOSEDATAFORMAT2 para determinar se o driver tem um formato de dados preferencial em um pin dado o atributo especificado.

Tabela de Resumo de Uso

Obter Definir Destino Tipo de descritor de propriedade Tipo de valor da propriedade
Sim Não Filtrar Ver comentários KSDATAFORMAT

Comentários

O descritor de propriedade é um KSP_PIN seguido por um KSMULTIPLE_ITEM especificando uma contagem de atributos de tamanho variável que seguem o KSMULTIPLE_ITEM. Cada atributo começa com um cabeçalho KSATTRIBUTE seguido por dados específicos do atributo. Os atributos atuam como parâmetros para a solicitação de propriedade, especificando os formatos de dados propostos.

KSPROPERTY_PIN_PROPOSEDATAFORMAT2 inclui uma estrutura do tipo KSMULTIPLE_ITEM,

O único atributo com suporte para a propriedade é KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE e é especificado usando a estrutura KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE . Observe que a estrutura KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE começa com um membro KSATTRIBUTE . Para obter mais informações, consulte Modos de processamento de sinal de áudio.

KSPROPERTY_TYPE_GET só terá suporte se o pin tiver formatos propostos. Essa função permite que o driver de áudio forneça informações sobre o formato de dados padrão em um pino dado o atributo especificado.

O filtro KS retornará STATUS_SUCCESS se o pin tiver o formato de dados preferencial para o atributo especificado. Se pin não tiver um formato de dados preferencial para o atributo especificado, ele retornará STATUS_NOT_SUPPORTED. Para quaisquer outras falhas, um erro apropriado é retornado. Se o driver der suporte a essa propriedade, o sistema operacional sempre usará esse formato para o modo de processamento de sinal específico. KSPROPERTY_TYPE_SET não tem suporte para essa propriedade.

A tabela a seguir fornece uma descrição dos elementosPinProperty da estrutura de entrada KSPROPERTY_PIN_PROPOSEDATAFORMAT2.

Elemento Descrição
PinProperty.Property.Set O PinProperty.Property.Set deve ser definido como o KSPROPSETID_Pin para o modo solicitado.
PinProperty.Property.Id A PinProperty.Property.Id sempre ser definida como KSPROPERTY_PIN_PROPOSEDATAFORMAT2.
PinProperty.Property.Flags O PinProperty.Property.Flags pode ser definido como KSPROPERTY_TYPE_GET ou para KSPROPERTY_TYPE_BASICSUPPORT para descobrir informações básicas sobre a propriedade.
PinProperty.PinId O PinProperty.PinId identifica o pino de destino para a solicitação de KSPROPERTY_PIN_PROPOSEDATAFORMAT2 .
PinProperty.Reserved O PinProperty.Reserved é reservado para uso futuro e sempre deve ser definido como zero (0).

A tabela a seguir fornece uma descrição do KSPROPERTY_PIN_PROPOSEDATAFORMAT2elementos Attributes da estrutura de entrada.

Elemento Descrição
Attributes.Count Attributes.Count deve ser definido como o número de atributos, normalmente um (1).
Attributes.Size O Attributes.Size deve ser definido como o tamanho de ProposeDataformat2Input. Ele pode ser calculado assim, quando há um atributo:

sizeof(ProposeDataformat2Input)

A tabela a seguir fornece uma descrição dos elementos KSPROPERTY_PIN_PROPOSEDATAFORMAT2 estrutura de entrada SignalProcessingModeAttribute .

Elemento Descrição
SignalProcessingModeAttribute.AttributeHeader.Attribute O elemento AttributeHeader.Attribute deve ser definido como KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE desejado.
SignalProcessingModeAttribute.AttributeHeader.Flags O elemento Flags é reservado para uso futuro e sempre deve ser definido como zero (0).
SignalProcessingModeAttribute.AttributeHeader.Size AttributeHeader.Size indica o tamanho de KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE. Ele pode ser calculado da seguinte maneira:

sizeof(KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE)
SignalProcessingModeAttribute.SignalProcessingMode O elemento SignalProcessingMode deve ser definido como o SIGNALPROCESSINGMODE solicitado, por exemplo, AUDIO_SIGNALPROCESSINGMODE_DEFAULT.

Para usar KSPROPERTY_PIN_PROPOSEDATAFORMAT2 defina a estrutura a seguir.

typedef struct
{
    KSP_PIN                                 PinProperty;
    KSMULTIPLE_ITEM                         Attributes;
    KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE  SignalProcessingModeAttribute;
} ProposeDataformat2Input;

Este exemplo de código mostra como inicializar a estrutura.

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;

Requisitos

Versão: Disponível a partir do Windows 8.1

Cabeçalho: ks.h (inclua Ks.h)

Confira também

KSP_PIN

KSDATAFORMAT

KSEVENT_PINCAPS_FORMATCHANGE

Propriedades do KS

KSPROPERTY

KSPROPERTY_AUDIOSIGNALPROCESSING_MODES