struttura KSRTAUDIO_HWREGISTER (ksmedia.h)

La struttura KSRTAUDIO_HWREGISTER specifica l'indirizzo e le informazioni aggiuntive su un registro hardware richiesto dal client. Viene compilato dal driver in risposta a una richiesta di registrazione tramite KSPROPERTY_RTAUDIO_POSITIONREGISTER e KSPROPERTY_RTAUDIO_CLOCKREGISTER.

Sintassi

typedef struct {
  PVOID     Register;
  ULONG     Width;
  ULONGLONG Numerator;
  ULONGLONG Denominator;
  ULONG     Accuracy;
} KSRTAUDIO_HWREGISTER, *PKSRTAUDIO_HWREGISTER;

Members

Register

Puntatore al registro. Questo membro specifica l'indirizzo virtuale in cui viene eseguito il mapping del registro.

Width

Specifica la larghezza, espressa in bit, del registro. Il valore di questo membro può essere 32 o 64.

Numerator

Specifica il numeratore della frequenza in cui il clock registra incrementi. Vedere le osservazioni seguenti. .

Denominator

Specifica il denominatore della frequenza con cui il clock registra incrementi. Vedere le osservazioni seguenti. .

Accuracy

Specifica l'accuratezza del registro dell'orologio o della posizione. Vedere la sezione Osservazioni seguente.

Commenti

Per le richieste di registrazione della posizione hardware tramite KSPROPERTY_RTAUDIO_POSITIONREGISTER il driver compila i membri Register, Width e Accuracy , perché gli altri membri sono specifici dei registri di clock. Per le richieste di registrazione dell'orologio hardware tramite KSPROPERTY_RTAUDIO_CLOCKREGISTER il driver riempie l'intera struttura.

Un registro di clock è un contatore che incrementa alla frequenza dell'orologio hardware interno che guida il bus interno del dispositivo audio. Il registro incrementa di uno con ogni segno di graduazione dell'orologio. Il registro inizia a contare quando il dispositivo si accende e continua a funzionare fino a quando il dispositivo non viene spento. Il registro di clock viene usato dal software per sincronizzare due o più dispositivi con orologi hardware indipendenti.

I membri Numeratore e Denominatore specificano insieme la frequenza con cui il clock registra incrementi. La frequenza viene calcolata dividendo numeratore per denominatore.

Il clock registra incrementi alla frequenza dell'orologio interno del dispositivo audio. Questa è la frequenza usata dal dispositivo audio per visualizzare gli eventi sul bus interno o sul collegamento codec esterno. L'hardware deriva le frequenze di campionamento audio dividendo la frequenza di clock interna.

Il dispositivo audio può derivare il suo orologio interno da un oscillatore cristallo su chip o un segnale di clock esterno. Ad esempio, se un dispositivo deriva un clock interno da 16,5 MHz dividendo un clock esterno a 33 MHz per due, il numeratore e il denominatore possono essere specificati rispettivamente come 33.000.000 e 2.

Il parametro Accuracy consente di specificare l'errore massimo in una posizione o nella lettura del registro di clock. Si tratta essenzialmente di una rappresentazione della frequenza di aggiornamento per il registro. Per il clock registra il parametro Accuracy indica il numero di tick di clock tra gli aggiornamenti del registro. Nell'esempio precedente di un clock interno a 16,5 MHz, se il registro di clock viene aggiornato ogni 4 clock, il parametro Accuracy viene impostato su 4 perché il registro deve rappresentare l'accuratezza del registro di clock in unità di tick di clock.

Per i registri di posizione, il parametro Accuracy rappresenta l'accuratezza del registro di posizione in unità di byte. Ad esempio, le dimensioni dei fotogrammi audio per un flusso PCM a 2 canali, a 16 bit, sono 4 byte. Se la posizione registra incrementa (di due volte la dimensione del fotogramma) una volta ogni secondo tick dell'orologio campione, il valore di accuratezza è di 8 byte. Se la posizione registra incrementa (di quattro volte la dimensione del fotogramma) una volta ogni quarto tick dell'orologio campione, il valore di accuratezza è di 16 byte e così via.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e nei sistemi operativi Windows successivi.
Intestazione ksmedia.h

Vedi anche

KSPROPERTY_RTAUDIO_CLOCKREGISTER

KSPROPERTY_RTAUDIO_POSITIONREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY