KSRTAUDIO_HWREGISTER estructura (ksmedia.h)
La estructura KSRTAUDIO_HWREGISTER especifica la dirección y la información adicional sobre un registro de hardware solicitado por el cliente. El controlador lo rellena en respuesta a una solicitud de registro a través de KSPROPERTY_RTAUDIO_POSITIONREGISTER y KSPROPERTY_RTAUDIO_CLOCKREGISTER.
Sintaxis
typedef struct {
PVOID Register;
ULONG Width;
ULONGLONG Numerator;
ULONGLONG Denominator;
ULONG Accuracy;
} KSRTAUDIO_HWREGISTER, *PKSRTAUDIO_HWREGISTER;
Miembros
Register
Puntero al registro. Este miembro especifica la dirección virtual en la que se asigna el registro.
Width
Especifica el ancho, en bits, del registro. El valor de este miembro puede ser 32 o 64.
Numerator
Especifica el numerador de la frecuencia con la que se incrementa el registro de reloj. Vea los comentarios siguientes. .
Denominator
Especifica el denominador de la frecuencia a la que se incrementa el registro de reloj. Vea los comentarios siguientes. .
Accuracy
Especifica la precisión del registro de posición o reloj. Consulte la siguiente sección Comentarios.
Comentarios
En el caso de las solicitudes de registro de posición de hardware a través de KSPROPERTY_RTAUDIO_POSITIONREGISTER el controlador rellena los miembros Register, Width y Accuracy , ya que los demás miembros son específicos de los registros de reloj. Para las solicitudes de registro de reloj de hardware a través de KSPROPERTY_RTAUDIO_CLOCKREGISTER el controlador rellena toda la estructura.
Un registro de reloj es un contador que se incrementa con la frecuencia del reloj de hardware interno que controla el bus interno del dispositivo de audio. El registro se incrementa en uno con cada tic del reloj. El registro comienza a contar cuando el dispositivo se enciende y continúa ejecutándose hasta que el dispositivo se apaga. El registro de reloj lo usa el software para sincronizar dos o más dispositivos con relojes de hardware independientes.
El numerador de miembros y el denominador juntos especifican la frecuencia con la que se incrementa el registro del reloj. La frecuencia se calcula dividiendo numerador por denominador.
El registro del reloj se incrementa con la frecuencia del reloj interno del dispositivo de audio. Esta es la frecuencia que el dispositivo de audio usa normalmente para reloj de eventos en su bus interno o en el vínculo de códec externo. El hardware deriva las frecuencias de la muestra de audio dividiendo la frecuencia de reloj interna.
El dispositivo de audio puede derivar su reloj interno de un oscilador de cristal en chip o una señal de reloj externa. Por ejemplo, si un dispositivo deriva un reloj interno de 16,5 MHz dividiendo un reloj externo de 33 MHz por dos, el numerador y el denominador se pueden especificar como 33 000 000 y 2, respectivamente.
El parámetro Accuracy especifica el error máximo en una lectura de registro de posición o reloj. Esto es básicamente una representación de la tasa de actualización del registro. En el caso de los registros de reloj, el parámetro Accuracy indica el número de tics de reloj entre las actualizaciones de registro. En el ejemplo anterior de un reloj interno de 16,5 MHz, si el registro del reloj se actualiza cada 4 relojes, el parámetro Accuracy se establecería en 4 porque el registro debe representar la precisión del registro del reloj en unidades de tics del reloj.
Para los registros de posición, el parámetro Accuracy representa la precisión del registro de posición en unidades de bytes. Por ejemplo, el tamaño del fotograma de audio para una secuencia PCM de 2 canales y de 16 bits es de 4 bytes. Si el registro de posición incrementa (en dos veces el tamaño del fotograma) una vez cada segundo tic del reloj de muestra, el valor de precisión es de 8 bytes. Si el registro de posición incrementa (en cuatro veces el tamaño del fotograma) una vez cada cuarta tic del reloj de muestra, el valor de precisión es de 16 bytes, etc.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows Vista y en sistemas operativos Windows posteriores. |
Encabezado | ksmedia.h |
Consulte también
KSPROPERTY_RTAUDIO_CLOCKREGISTER