AVStream 中的事件处理
AVStream 筛选器和引脚通过在 KSFILTER_DESCRIPTOR 结构或 KSPIN_DESCRIPTOR_EX 结构的 AutomationTable 成员中提供 KSAUTOMATION_TABLE 结构来描述它们支持的属性 、事件和 方法。 有关详细信息,请参阅 AVStream 描述符。
为了支持事件,AVStream 微型驱动程序在自动化表中提供了 KSEVENT_SET 结构的数组。 每个KSEVENT_SET结构都包含 一个KSEVENT_ITEM 结构的数组。 每个KSEVENT_ITEM结构描述微型驱动程序如何支持特定事件。
微型驱动程序可以通过在KSEVENT_ITEM结构中提供 AVStrMiniAddEvent 和 AVStrMiniRemoveEvent 处理程序来自定义事件行为。
当 AVStream 收到事件启用请求时,它将生成KSEVENT_ENTRY结构。 如果微型驱动程序提供了 AVStrAddEvent 处理程序,则 AVStream 在调用 AVStrAddEvent 时传递指向 KSEVENT_ENTRY 结构的指针。
如果未提供 AVStrAddEvent 处理程序,则默认情况下 AVStream 会将事件添加到对象列表中。 微型驱动程序不会收到 KSEVENT_ENTRY 指针。 微型驱动程序可以通过调用 KsFilterGenerateEvents 或 KsPinGenerateEvents 来触发事件。