KSPROPERTY_PIN_PROPOSEDATAFORMAT2
El sistema operativo usa la propiedad KSPROPERTY_PIN_PROPOSEDATAFORMAT2 para determinar si el controlador tiene un formato de datos preferido en un pin dado el atributo especificado.
Tabla de resumen de uso
Obtener | Set | Destino | Tipo de descriptor de propiedad | Tipo de valor de propiedad |
---|---|---|---|---|
Sí | No | Filtrar | Ver comentarios | KSDATAFORMAT |
Observaciones
El descriptor de propiedad es un KSP_PIN seguido de un KSMULTIPLE_ITEM especificando un recuento de atributos de tamaño variable que siguen al KSMULTIPLE_ITEM. Cada atributo comienza con un encabezado KSATTRIBUTE seguido de datos específicos del atributo. Los atributos actúan como parámetros para la solicitud de propiedad, especificando los formatos de datos propuestos.
KSPROPERTY_PIN_PROPOSEDATAFORMAT2 incluye una estructura de tipo KSMULTIPLE_ITEM,
El único atributo admitido para la propiedad es KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE y se especifica mediante la estructura KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE . Tenga en cuenta que la estructura KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE comienza con un miembro KSATTRIBUTE . Para obtener más información, consulte Modos de procesamiento de señal de audio.
KSPROPERTY_TYPE_GET solo se admite si el pin tiene formatos propuestos. Esta función permite al controlador de audio proporcionar información sobre el formato de datos predeterminado en un pin dado el atributo especificado.
El filtro KS devuelve STATUS_SUCCESS si el pin tiene el formato de datos preferido para el atributo especificado. Si el pin no tiene un formato de datos preferido para el atributo especificado, devuelve STATUS_NOT_SUPPORTED. Para cualquier otro error, se devuelve un error adecuado. Si el controlador admite esta propiedad, el sistema operativo siempre usará este formato para el modo de procesamiento de señal específico. KSPROPERTY_TYPE_SET no se admite para esta propiedad.
En la tabla siguiente se proporciona una descripción de la estructura de entrada de KSPROPERTY_PIN_PROPOSEDATAFORMAT2 elementos PinProperty .
Elemento | Descripción |
---|---|
PinProperty.Property.Set | PinProperty.Property.Set debe establecerse en el KSPROPSETID_Pin para el modo solicitado. |
PinProperty.Property.Id | El PinProperty.Property.Id siempre se establece en KSPROPERTY_PIN_PROPOSEDATAFORMAT2. |
PinProperty.Property.Flags | PinProperty.Property.Flags se puede establecer en KSPROPERTY_TYPE_GET o en KSPROPERTY_TYPE_BASICSUPPORT para averiguar información básica sobre la propiedad. |
PinProperty.PinId | PinProperty.PinId identifica el pin de destino de la solicitud de KSPROPERTY_PIN_PROPOSEDATAFORMAT2 . |
PinProperty.Reserved | PinProperty.Reserved está reservado para uso futuro y siempre debe establecerse en cero (0). |
En la tabla siguiente se proporciona una descripción de los KSPROPERTY_PIN_PROPOSEDATAFORMAT2 elementos Attributes de estructura de entrada.
Elemento | Descripción |
---|---|
Attributes.Count | Attributes.Count debe establecerse en el número de atributos, normalmente uno (1). |
Attributes.Size | Attributes.Size debe establecerse en el tamaño de ProposeDataformat2Input. Se puede calcular de esta manera, cuando hay un atributo:sizeof(ProposeDataformat2Input) |
En la tabla siguiente se proporciona una descripción de la estructura de entrada KSPROPERTY_PIN_PROPOSEDATAFORMAT2 elementos SignalProcessingModeAttribute .
Elemento | Descripción |
---|---|
SignalProcessingModeAttribute.AttributeHeader.Attribute | El elemento AttributeHeader.Attribute debe establecerse en el KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE deseado. |
SignalProcessingModeAttribute.AttributeHeader.Flags | El elemento Flags está reservado para uso futuro y siempre debe establecerse en cero (0). |
SignalProcessingModeAttribute.AttributeHeader.Size | AttributeHeader.Size indica el tamaño de KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE. Se puede calcular de la siguiente manera:sizeof(KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE) |
SignalProcessingModeAttribute.SignalProcessingMode | El elemento SignalProcessingMode debe establecerse en signalPROCESSINGMODE solicitado, por ejemplo, AUDIO_SIGNALPROCESSINGMODE_DEFAULT. |
Para usar KSPROPERTY_PIN_PROPOSEDATAFORMAT2 defina la estructura siguiente.
typedef struct
{
KSP_PIN PinProperty;
KSMULTIPLE_ITEM Attributes;
KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE SignalProcessingModeAttribute;
} ProposeDataformat2Input;
En este ejemplo de código se muestra cómo inicializar la estructura.
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
Versión: Disponible a partir de Windows 8.1
Encabezado: ks.h (incluya Ks.h)