структура 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
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по