структура KSRTAUDIO_HWREGISTER (ksmedia.h)

Структура KSRTAUDIO_HWREGISTER указывает адрес и дополнительные сведения о регистре оборудования, запрошенном клиентом. Он заполняется драйвером в ответ на запрос регистрации через KSPROPERTY_RTAUDIO_POSITIONREGISTER и KSPROPERTY_RTAUDIO_CLOCKREGISTER.

Синтаксис

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

Члены

Register

Указатель на регистр. Этот член указывает виртуальный адрес, с которым сопоставляется регистр.

Width

Задает ширину регистра (в битах). Значение этого элемента может быть равно 32 или 64.

Numerator

Задает числитель частоты приращения регистра часов. См. следующие примечания. .

Denominator

Задает знаменатель частоты приращения регистра часов. См. следующие примечания. .

Accuracy

Указывает точность часов или регистра положения. См. следующий раздел Примечаний.

Комментарии

Для запросов регистрации положения оборудования через KSPROPERTY_RTAUDIO_POSITIONREGISTER драйвер заполняет элементы Register, Width и Accuracy , так как другие члены относятся к регистрам часов. Для аппаратных часов регистрируются запросы через KSPROPERTY_RTAUDIO_CLOCKREGISTER драйвер заполняет всю структуру.

Регистр часов — это счетчик, который увеличивается с частотой внутренних аппаратных часов, которые управляет внутренней шиной звукового устройства. Регистр увеличивается на единицу с каждым тиком часов. Регистр начинает подсчитывать, когда устройство включается, и продолжает работать до выключения устройства. Регистр часов используется программным обеспечением для синхронизации двух или более устройств с независимыми аппаратными часами.

Числитель элементов и знаменатель вместе указывают частоту приращения часов. Частота вычисляется путем деления числителя на знаменатель.

Регистр часов увеличивается с частотой внутренних часов звукового устройства. Это частота, которую звуковое устройство обычно использует для синхронизации событий на внутренней шине или во внешней ссылке кодека. Оборудование получает частоты образцов звука путем деления внутренней частоты часов.

Звуковое устройство может получить свои внутренние часы из кристаллического осциллятора на микросхеме или внешнего сигнала часов. Например, если устройство получает внутренние часы 16,5 МГц путем деления внешних часов 33 МГц на два, числитель и знаменатель могут быть указаны как 33 000 000 и 2 соответственно.

Параметр Точность указывает максимальную ошибку при чтении регистра позиции или часов. По сути, это представление частоты обновления для регистра. Для регистров часов параметр Точность указывает количество тактов между обновлениями регистра. В предыдущем примере внутренних часов с частотой 16,5 МГц, если регистр часов обновляется каждые 4 часа, параметру Точность будет присвоено значение 4, так как регистр должен представлять точность регистра часов в единицах тактов.

Для регистров позиций параметр Точность представляет точность регистра позиции в единицах байтов. Например, размер аудиокадра для 2-канального 16-разрядного потока PCM составляет 4 байта. Если регистр позиции увеличивается (в два раза больше размера кадра) раз в секунду для часов выборки, то значение точности равно 8 байтам. Если регистр позиции увеличивается (в четыре раза больше размера кадра) каждый четвертый тактов выборки, значение точности составляет 16 байт и т. д.

Требования

Требование Значение
Минимальная версия клиента Доступно в Операционных системах Windows Vista и более поздних версий.
Верхняя часть ksmedia.h

См. также раздел

KSPROPERTY_RTAUDIO_CLOCKREGISTER

KSPROPERTY_RTAUDIO_POSITIONREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY