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对应于 KSPROPERTY_TUNER_FREQUENCY_S 结构的 TuningFlags 成员中的 KS_TUNER_TUNING_EXACT优化 标志。 这意味着扫描始终尝试确定下一个通道的确切频率。 此外,优化设备遵循的优化策略由驱动程序 (KS_TUNER_STRATEGY_DRIVER_TUNES从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 属性将返回 KSPROPERTY_TUNER_SCAN_STATUS_S 结构的 LockStatus 成员中的 Tuner_LockType_None 值。 如果优化设备可以从信号自动检测调谐器标准,并且找到了备用标准中的信号,则优化设备本身可以处理对 KSPROPERTY_TUNER_STANDARD 属性的任何请求。 优化设备可能无法超过相锁循环 (PLL) 锁,并且可能指定标准未知。 或者,优化设备可能会自动调整为不同的信号标准。 此外,优化设备甚至可能获取该信号标准的完全锁定,并确定备用标准。 当频谱中有多个信号标准时,可能会出现这种情况。

边界条件

如果驱动程序发现通道的中心频率超出了应用程序提供的范围,则驱动程序必须忽略该信号并移动到下一个信号:驱动程序不得在提供的范围内返回最佳可能近似值。 驱动程序必须移动到下一个信号,以避免在应用程序尝试编译通道列表时重复计数通道。

出于同样的原因,应用程序必须将模拟和数字电视) 的预期通道带宽 (大约 6/2 = 3MHz 的预期通道带宽 (的一半,以确保通道不会重复计数,尤其是在硬件遇到硬件无法解码的信号时。 在这种情况下,驱动程序难以避免重复对某些通道进行计数。

多标准光谱

每当找到新通道或信号时,扫描操作都必须完成。 然后,驱动程序通过 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