Поделиться через


KSEVENT_TUNER_INITIATE_SCAN

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

Сводная таблица использования

Получить Присвойте параметру Назначение Тип дескриптора события Тип значения события
Нет Да Pin KSEVENT_TUNER_INITIATE_SCAN_S KSEVENTDATA

Комментарии

Каждый запрос на сканирование должен быть неблокирующим. То есть драйвер не должен ждать завершения операции сканирования, прежде чем он вернет управление. Фактически драйвер должен использовать отдельный поток для выполнения операции сканирования.

Хотя событие KSEVENT_TUNER_INITIATE_SCAN не зависит от KSPROPERTY_TUNER_FREQUENCY, KSEVENT_TUNER_INITIATE_SCAN соответствует флагу настройки KS_TUNER_TUNING_EXACT в элементе TuningFlags структуры KSPROPERTY_TUNER_FREQUENCY_S . Это означает, что сканирование всегда пытается определить точную частоту следующего канала. Кроме того, стратегия настройки, которую следует устройству настройки, управляется драйвером (KS_TUNER_STRATEGY_DRIVER_TUNES из элемента Strategyструктуры KSPROPERTY_TUNER_MODE_CAPS_S ). Эти фиксированные флаги и стратегия всегда следуют, даже если для управления KSPROPERTY_TUNER_FREQUENCY используются другой флаг и стратегия.

Иными словами, значения KSTUNER_TUNING_FLAGS и KSTUNER_STRATEGY не влияют на поведение KSEVENT_TUNER_INITIATE_SCAN.

Завершение и состояние

Свойство состояния сканирования KSPROPERTY_TUNER_SCAN_STATUS предоставляет сведения о текущей частоте и состоянии блокировки сигнала. Приложение запрашивает состояние блокировки из свойства KSPROPERTY_TUNER_SCAN_STATUS. Приложение также запрашивает KSPROPERTY_TUNER_STANDARD_MODE свойство для получения сведений об автоматическом обнаружении сигнала. Если в запрошенном диапазоне сигнал не найден, свойство KSPROPERTY_TUNER_SCAN_STATUS возвращает значение Tuner_LockType_None в элементе LockStatusструктуры KSPROPERTY_TUNER_SCAN_STATUS_S . Если устройство настройки может автоматически обнаружить стандарт тюнера по сигналу и был найден сигнал в альтернативном стандарте, само устройство настройки может обрабатывать любые запросы к свойству KSPROPERTY_TUNER_STANDARD . Устройство настройки, возможно, не может выйти за пределы блокировки с поэтапным циклом блокировки (PLL), и оно может указать, что стандарт неизвестен. Или устройство настройки может автоматически адаптироваться к другому стандарту сигнала. Кроме того, устройство настройки может даже получить полную блокировку для этого стандарта сигнала и определить альтернативный стандарт. Такие ситуации могут возникать при наличии нескольких стандартов сигнала в частотном спектре.

Условия границ

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

По той же причине приложение должно сместить диапазон запросов на половину ожидаемой пропускной способности канала (около 6/2 = 3 МГц для аналогового и цифрового тв), чтобы каналы не учитывались дважды, особенно когда оборудование сталкивается с сигналом, который оборудование не может декодировать. В этом случае драйверу трудно избежать двойного подсчета определенных каналов.

Многостандартные спектры

Операция сканирования должна завершиться при каждом обнаружении нового канала или сигнала. Затем драйвер возвращает состояние сканирования с помощью свойства KSPROPERTY_TUNER_SCAN_STATUS . Проверка должна выполняться при каждом обнаружении нового канала, даже если драйвер определяет, что вновь найденный канал не соответствует ранее примененному стандарту. Приложение должно обработать сведения о новом канале и повторно отправить запрос на сканирование, чтобы найти другой канал с тем же стандартом сигнала.

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

KSEVENT_TUNER_INITIATE_SCAN_S

KSEVENTDATA

KSPROPERTY_TUNER_SCAN_STATUS

KSPROPERTY_TUNER_SCAN_CAPS

KSPROPERTY_TUNER_STANDARD

KSPROPERTY_TUNER_STANDARD_MODE