Partager via


structure KSRTAUDIO_HWREGISTER (ksmedia.h)

La structure KSRTAUDIO_HWREGISTER spécifie l’adresse et des informations supplémentaires sur un registre matériel demandé par le client. Il est renseigné par le conducteur en réponse à une demande d’inscription via KSPROPERTY_RTAUDIO_POSITIONREGISTER et KSPROPERTY_RTAUDIO_CLOCKREGISTER.

Syntaxe

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

Membres

Register

Pointeur vers le registre. Ce membre spécifie l’adresse virtuelle dans laquelle le registre est mappé.

Width

Spécifie la largeur, en bits, du registre. La valeur de ce membre peut être 32 ou 64.

Numerator

Spécifie le numérateur de la fréquence à laquelle le registre d’horloge s’incrémente. Consultez les remarques suivantes. un peu plus loin dans cet article, aborde l’actualisation de chaque type de source de données.

Denominator

Spécifie le dénominateur de la fréquence à laquelle le registre d’horloge s’incrémente. Consultez les remarques suivantes. un peu plus loin dans cet article, aborde l’actualisation de chaque type de source de données.

Accuracy

Spécifie la précision du registre d’horloge ou de position. Consultez la section Remarques suivante.

Remarques

Pour les demandes d’inscription de position matérielle via KSPROPERTY_RTAUDIO_POSITIONREGISTER le pilote remplit les membres Registre, Largeur et Précision , car les autres membres sont spécifiques aux registres d’horloge. Pour les demandes d’enregistrement de l’horloge matérielle via KSPROPERTY_RTAUDIO_CLOCKREGISTER le pilote remplit l’ensemble de la structure.

Un registre d’horloge est un compteur qui incrémente à la fréquence de l’horloge matérielle interne qui pilote le bus interne de l’appareil audio. Le registre est incrémenté d’un à chaque graduation de l’horloge. Le registre commence à compter lorsque l’appareil s’allume et continue de s’exécuter jusqu’à ce que l’appareil s’éteigne. Le registre d’horloge est utilisé par les logiciels pour synchroniser deux appareils ou plus avec des horloges matérielles indépendantes.

Les membres Numérateur et Dénominateur spécifient ensemble la fréquence à laquelle le registre d’horloge s’incrémente. La fréquence est calculée en divisant Numérateur par dénominateur.

Le registre d’horloge s’incrémente à la fréquence de l’horloge interne du périphérique audio. Il s’agit de la fréquence que le périphérique audio utilise généralement pour horloger les événements sur son bus interne ou sur la liaison de codec externe. Le matériel dérive les fréquences d’échantillonnage audio en divisant la fréquence d’horloge interne.

L’appareil audio peut dériver son horloge interne d’un oscillateur à cristaux sur puce ou d’un signal d’horloge externe. Par exemple, si un appareil dérive une horloge interne de 16,5 MHz en divisant une horloge externe de 33 MHz par deux, le numérateur et le dénominateur peuvent être spécifiés comme 33 000 000 et 2, respectivement.

Le paramètre Accuracy spécifie l’erreur maximale dans la lecture d’une position ou d’un registre d’horloge. Il s’agit essentiellement d’une représentation du taux de mise à jour du registre. Pour les registres d’horloge, le paramètre Précision indique le nombre de cycles d’horloge entre les mises à jour du registre. Dans l’exemple précédent d’une horloge interne de 16,5 MHz, si le registre d’horloge est mis à jour toutes les 4 horloges, le paramètre Accuracy est défini sur 4, car le registre doit représenter la précision du registre d’horloge en unités de tiques d’horloge.

Pour les registres de position, le paramètre Accuracy représente la précision du registre de position en unités d’octets. Par exemple, la taille d’image audio d’un flux PCM 2 canaux et 16 bits est de 4 octets. Si le registre de position augmente (de deux fois la taille de l’image) une fois par seconde de l’exemple d’horloge, la valeur de précision est de 8 octets. Si le registre de position est incrémenté (de quatre fois la taille de l’image) une fois tous les quatre temps de l’exemple d’horloge, la valeur de précision est de 16 octets, et ainsi de suite.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans les systèmes d’exploitation Windows Vista et ultérieurs.
En-tête ksmedia.h

Voir aussi

KSPROPERTY_RTAUDIO_CLOCKREGISTER

KSPROPERTY_RTAUDIO_POSITIONREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY