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)