事件机制和流

本部分仅适用于从 Microsoft Windows Vista 开始的操作系统。

扫描操作完成后,驱动程序会通过事件句柄通知应用程序,该事件句柄是 KSEVENT_TUNER_INITIATE_SCAN_S 成员指定的 但是,若要确定扫描操作的实际锁定状态,必须 KSPROPERTY_TUNER_SCAN_STATUS驱动程序的 属性。

与所有内核流式处理事件请求一样,应用程序可以在 KSEVENT_TUNER_INITIATE_SCAN之前取消 事件请求。 当应用程序要求取消当前扫描操作时,优化器筛选器 (KsTvTune.ax) 在调用驱动程序的 KSEVENT_TUNER_INITIATE_SCAN 时将 KSEVENT_TUNER_INITIATE_SCAN_S 的 StartFrequencyEndFrequency 成员设置为零。 驱动程序可能会执行整个清理。 但是, KsTvTune.ax 可能会请求另一个整个扫描操作,因此驱动程序可能不会执行整个清理。 取消扫描操作调用是同步操作。

当应用程序需要终止扫描时,KsTvTune.ax 调用 KSEVENT_TUNER_INITIATE_SCAN StartFrequencyEndFrequency 设置为零以取消注册事件。 然后,驱动程序必须执行其工作线程和其他内部数据结构的整个清理。