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)