KSPROPERTY_RTAUDIO_POSITIONREGISTER

La proprietà KSPROPERTY_RTAUDIO_POSITIONREGISTER esegue il mapping del registro di posizione di un dispositivo audio per un determinato flusso in una posizione di memoria virtuale a cui è possibile accedere il client.

Nella tabella seguente vengono riepilogate le funzionalità di questa proprietà.

Tabella riepilogo utilizzo

Recupero Set Destinazione Tipo di descrittore delle proprietà Tipo di valore della proprietà

No

Aggiungi (Blocca)

KSRTAUDIO_HWREGISTER_PROPERTY

KSRTAUDIO_HWREGISTER

Il descrittore di proprietà (dati dell'istanza) è una struttura KSRTAUDIO_HWREGISTER_PROPERTY, che contiene una struttura KSPROPERTY . Prima di inviare la richiesta, il client carica la struttura con valori che indicano l'indirizzo di base preferito per il registro.

Il valore della proprietà (dati dell'operazione) è una struttura KSRTAUDIO_HWREGISTER in cui il gestore della proprietà scrive l'indirizzo virtuale a cui ha eseguito il mapping del registro della posizione hardware. Il client può leggere direttamente il registro da questo indirizzo. La struttura KSRTAUDIO_HWREGISTER specifica anche la frequenza in cui viene incrementato il registro di posizione.

Valore restituito

Una richiesta di proprietà KSPROPERTY_RTAUDIO_POSITIONREGISTER restituisce STATUS_SUCCESS per indicare che è stata completata correttamente. In caso contrario, la richiesta restituisce un codice di stato di errore appropriato.

Commenti

In genere, le applicazioni audio devono monitorare la posizione corrente di un flusso audio. Questa posizione viene specificata come offset di byte dall'inizio del flusso:

  • Nel caso di un flusso di rendering, la posizione del flusso è l'offset di byte del frame audio attualmente riprodotto tramite i convertitori digitali-analogici (DACS).

  • Nel caso di un flusso di acquisizione, la posizione del flusso è l'offset di byte del frame audio attualmente registrato tramite i convertitori analogici a digitale.

Alcuni dispositivi audio contengono registri di posizione che aumentano continuamente mentre il flusso è in esecuzione. Per un dispositivo audio che incorpora tutte le funzioni digitali e analogiche in un singolo chip, il registro posizione indica in genere la posizione corrente del flusso direttamente.

Tuttavia, per un chipset che divide le funzioni digitali e analogiche in chip bus-controller e codec separati, il registro di posizione si trova in genere nel chip del controller del bus e indica quanto segue:

  • Nel caso di un flusso di rendering, il registro posizione indica l'offset di byte dell'ultimo frame audio scritto dal controller del bus nel codec.

  • Nel caso di un flusso di acquisizione, il registro di posizione indica l'offset di byte dell'ultimo frame audio letto dal codec.

In entrambi i casi, il valore del registro posizione non include il ritardo tramite il codec. Se il client ha determinato il ritardo del codec, può aggiungere questo ritardo al valore del registro di posizione per stimare la posizione del flusso true (alle schede dati o adC). Per un valore CodecDelay che specifica il ritardo peggiore del caso tramite il codec, è possibile eseguire una query sulla proprietà KSPROPERTY_RTAUDIO_HWLATENCY .

In caso di esito positivo, una richiesta di proprietà KSPROPERTY_RTAUDIO_POSITIONREGISTER esegue il mapping della posizione a un indirizzo di memoria virtuale accessibile al client dalla modalità utente o dalla modalità kernel, come specificato dal client. Successivamente, il client legge da questo indirizzo per ottenere il valore corrente del registro di posizione.

La richiesta di proprietà non riesce se l'hardware audio non supporta un registro di posizione che può essere mappato a un indirizzo virtuale. In questo caso, il client deve determinare la posizione dalla proprietà KSPROPERTY_AUDIO_POSITION .

Il mapping del registro di posizione viene eliminato quando il pin viene chiuso. Il client può eseguire il mapping del registro una sola volta alla durata di un pin aperto e qualsiasi chiamata successiva per eseguire il mapping del registro di posizione per il pin ha esito negativo.

In genere è più veloce leggere il registro di posizione rispetto all'invio di una richiesta di KSPROPERTY_AUDIO_POSITION, che richiede transizioni tra la modalità utente e la modalità kernel per i client in modalità utente.

Requisiti

Versione

Disponibile in Windows Vista e nei sistemi operativi Windows successivi.

Intestazione

Ksmedia.h

Vedere anche

KSPROPERTY

KSRTAUDIO_HWREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY

KSPROPERTY_AUDIO_POSITION

KSPROPERTY_RTAUDIO_HWLATENCY