KSPROPERTY_PIN_PROPOSEDATAFORMAT2
Il sistema operativo usa la proprietà KSPROPERTY_PIN_PROPOSEDATAFORMAT2 per determinare se il driver ha un formato di dati preferito su un pin in base all'attributo specificato.
Tabella riepilogo utilizzo
Recupero | Set | Destinazione | Tipo di descrittore di proprietà | Tipo valore proprietà |
---|---|---|---|---|
Sì | No | Filtra | Vedere le osservazioni | KSDATAFORMAT |
Commenti
Il descrittore di proprietà è un KSP_PIN seguito da un KSMULTIPLE_ITEM che specifica un conteggio degli attributi delle dimensioni delle variabili che seguono la KSMULTIPLE_ITEM. Ogni attributo inizia con un'intestazione KSATTRIBUTE seguita da dati specifici dell'attributo. Gli attributi fungono da parametri per la richiesta di proprietà, specificando i formati di dati proposti.
KSPROPERTY_PIN_PROPOSEDATAFORMAT2 include una struttura di tipo KSMULTIPLE_ITEM,
L'unico attributo supportato per la proprietà è KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE e viene specificato usando la struttura KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE . Si noti che la struttura KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE inizia con un membro KSATTRIBUTE . Per altre informazioni, vedere Modalità di elaborazione dei segnali audio.
KSPROPERTY_TYPE_GET è supportato solo se il pin ha formati proposti. Questa funzione consente al driver audio di fornire informazioni sul formato di dati predefinito in un pin in base all'attributo specificato.
Il filtro KS restituisce STATUS_SUCCESS se il pin ha un formato di dati preferito per l'attributo specificato. Se il pin non ha un formato di dati preferito per l'attributo specificato, restituisce STATUS_NOT_SUPPORTED. Per eventuali altri errori, viene restituito un errore appropriato. Se il driver supporta questa proprietà, il sistema operativo userà sempre questo formato per la modalità di elaborazione del segnale specifica. KSPROPERTY_TYPE_SET non è supportato per questa proprietà.
Nella tabella seguente viene fornita una descrizione degli elementi PinProperty della struttura di input KSPROPERTY_PIN_PROPOSEDATAFORMAT2.
Elemento | Descrizione |
---|---|
PinProperty.Property.Set | L'oggetto PinProperty.Property.Set deve essere impostato sul KSPROPSETID_Pin per la modalità richiesta. |
PinProperty.Property.Id | Il PinProperty.Property.Id essere sempre impostato su KSPROPERTY_PIN_PROPOSEDATAFORMAT2. |
PinProperty.Property.Flags | PinProperty.Property.Flags può essere impostato su KSPROPERTY_TYPE_GET o su KSPROPERTY_TYPE_BASICSUPPORT per trovare informazioni di base sulla proprietà. |
PinProperty.PinId | PinProperty.PinId identifica il pin di destinazione per la richiesta di KSPROPERTY_PIN_PROPOSEDATAFORMAT2 . |
PinProperty.Reserved | PinProperty.Reserved è riservato per uso futuro e deve essere sempre impostato su zero (0). |
Nella tabella seguente viene fornita una descrizione degli elementi attributi della struttura di input KSPROPERTY_PIN_PROPOSEDATAFORMAT2.
Elemento | Descrizione |
---|---|
Attributes.Count | Attributes.Count deve essere impostato sul numero di attributi, in genere uno (1). |
Attributes.Size | Attributes.Size deve essere impostato sulle dimensioni di ProposeDataformat2Input. Può essere calcolato in questo modo, quando è presente un attributo:sizeof(ProposeDataformat2Input) |
Nella tabella seguente viene fornita una descrizione degli elementi SignalProcessingModeAttribute della struttura di input KSPROPERTY_PIN_PROPOSEDATAFORMAT2.
Elemento | Descrizione |
---|---|
SignalProcessingModeAttribute.AttributeHeader.Attribute | L'elemento AttributeHeader.Attribute deve essere impostato sul KSATTRIBUTEID_AUDIOSIGNALPROCESSING_MODE desiderato. |
SignalProcessingModeAttribute.AttributeHeader.Flags | L'elemento Flags è riservato per un uso futuro e deve essere sempre impostato su zero (0). |
SignalProcessingModeAttribute.AttributeHeader.Size | AttributeHeader.Size indica le dimensioni di KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE. Può essere calcolato come segue:sizeof(KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE) |
SignalProcessingModeAttribute.SignalProcessingMode | L'elemento SignalProcessingMode deve essere impostato su SIGNALPROCESSINGMODE richiesto, ad esempio AUDIO_SIGNALPROCESSINGMODE_DEFAULT. |
Per usare KSPROPERTY_PIN_PROPOSEDATAFORMAT2 definire la struttura seguente.
typedef struct
{
KSP_PIN PinProperty;
KSMULTIPLE_ITEM Attributes;
KSATTRIBUTE_AUDIOSIGNALPROCESSING_MODE SignalProcessingModeAttribute;
} ProposeDataformat2Input;
Questo esempio di codice illustra come inizializzare la struttura.
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;
Requisiti
Versione: Disponibile a partire da Windows 8.1
Intestazione: ks.h (include Ks.h)