структура 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 и Точность членов, так как другие члены относятся к регистрам часов. Для запросов на аппаратные часы регистрируются через KSPROPERTY_RTAUDIO_CLOCKREGISTER драйвер заполняет всю структуру.

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

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

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

Звуковое устройство может получить внутренние часы от осциллятора кристалла на микросхеме или внешнего сигнала часов. Например, если устройство наследует внутренние часы 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