Compartir a través de


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
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)

Consulte también

KSP_PIN

KSDATAFORMAT

KSEVENT_PINCAPS_FORMATCHANGE

Propiedades de KS

KSPROPERTY

KSPROPERTY_AUDIOSIGNALPROCESSING_MODES