Partager via


KSPROPERTY_PIN_PROPOSEDATAFORMAT2

Le système d’exploitation utilise la propriété KSPROPERTY_PIN_PROPOSEDATAFORMAT2 pour déterminer si le pilote a un format de données préféré sur une broche en fonction de l’attribut spécifié.

Tableau récapitulatif de l’utilisation

Obtenir Définissez Cible Type de descripteur de propriété Type de valeur de propriété
Oui Non Filtrer Voir les remarques KSDATAFORMAT

Notes

Le descripteur de propriété est un KSP_PIN suivi d’un KSMULTIPLE_ITEM spécifiant un nombre d’attributs de taille variable qui suivent le KSMULTIPLE_ITEM. Chaque attribut commence par un en-tête KSATTRIBUTE suivi de données spécifiques à l’attribut. Les attributs agissent en tant que paramètres pour la demande de propriété, en spécifiant les formats de données proposés.

KSPROPERTY_PIN_PROPOSEDATAFORMAT2 inclut une structure de type KSMULTIPLE_ITEM,

Le seul attribut pris en charge pour la propriété est KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE et il est spécifié à l’aide de la structure KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE . Notez que la structure KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE commence par un membre KSATTRIBUTE . Pour plus d’informations, consultez Modes de traitement du signal audio.

KSPROPERTY_TYPE_GET est pris en charge uniquement si le code pin a des formats proposés. Cette fonction permet au pilote audio de fournir des informations sur le format de données par défaut sur une broche en fonction de l’attribut spécifié.

Le filtre KS retourne STATUS_SUCCESS si la broche a le format de données préféré pour l’attribut spécifié. Si le code pin n’a pas de format de données préféré pour l’attribut spécifié, il retourne STATUS_NOT_SUPPORTED. Pour tout autre échec, une erreur appropriée est retournée. Si le pilote prend en charge cette propriété, le système d’exploitation utilise toujours ce format pour le mode de traitement du signal spécifique. KSPROPERTY_TYPE_SET n’est pas pris en charge pour cette propriété.

Le tableau suivant fournit une description des éléments PinProperty de la structure d’entrée KSPROPERTY_PIN_PROPOSEDATAFORMAT2.

Élément Description
PinProperty.Property.Set PinProperty.Property.Set doit être défini sur le KSPROPSETID_Pin pour le mode demandé.
PinProperty.Property.Id Le PinProperty.Property.Id toujours défini sur KSPROPERTY_PIN_PROPOSEDATAFORMAT2.
PinProperty.Property.Flags PinProperty.Property.Flags peut être défini sur KSPROPERTY_TYPE_GET ou sur KSPROPERTY_TYPE_BASICSUPPORT pour obtenir des informations de base sur la propriété.
PinProperty.PinId PinProperty.PinId identifie la broche cible pour la requête KSPROPERTY_PIN_PROPOSEDATAFORMAT2 .
PinProperty.Reserved PinProperty.Reserved est réservé à une utilisation future et doit toujours être défini sur zéro (0).

Le tableau suivant fournit une description des KSPROPERTY_PIN_PROPOSEDATAFORMAT2 éléments Attributes de structure d’entrée.

Élément Description
Attributes.Count Attributes.Count doit être défini sur le nombre d’attributs, normalement un (1).
Attributes.Size Attributes.Size doit être défini sur la taille de ProposeDataformat2Input. Il peut être calculé comme suit, lorsqu’il existe un attribut :

sizeof(ProposeDataformat2Input)

Le tableau suivant fournit une description des éléments SignalProcessingModeAttributede la structure d’entrée KSPROPERTY_PIN_PROPOSEDATAFORMAT2.

Élément Description
SignalProcessingModeAttribute.AttributeHeader.Attribute L’élément AttributeHeader.Attribute doit être défini sur le KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE souhaité.
SignalProcessingModeAttribute.AttributeHeader.Flags L’élément Flags est réservé à une utilisation ultérieure et doit toujours être défini sur zéro (0).
SignalProcessingModeAttribute.AttributeHeader.Size AttributeHeader.Size indique la taille de KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE. Il peut être calculé comme suit :

sizeof(KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE)
SignalProcessingModeAttribute.SignalProcessingMode L’élément SignalProcessingMode doit être défini sur le SIGNALPROCESSINGMODE demandé, par exemple, AUDIO_SIGNALPROCESSINGMODE_DEFAULT.

Pour utiliser KSPROPERTY_PIN_PROPOSEDATAFORMAT2 définissez la structure suivante.

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

Cet exemple de code montre comment initialiser la structure.

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;

Spécifications

Version: Disponible à partir de Windows 8.1

En-tête : ks.h (include Ks.h)

Voir aussi

KSP_PIN

KSDATAFORMAT

KSEVENT_PINCAPS_FORMATCHANGE

KS Properties

KSPROPERTY

KSPROPERTY_AUDIOSIGNALPROCESSING_MODES