IPortEvents 接口 (portcls.h)

微型端口驱动程序使用 IPortEvents 接口来通知客户端 硬件事件。 在 Windows 98/Me 和 Windows 2000 及更高版本中,portcls.sys 中的所有端口驱动程序都实现此接口并将其公开给微型端口驱动程序。 若要确定端口驱动程序是否支持 IPortEvents 接口,微型端口驱动程序使用 REFIID IID_IPortEvents调用 IPortXxx 对象的 QueryInterface 方法。 IPortEvents 继承自 IUnknown 接口

驱动程序通常使用 IPortEvents 接口来通知系统硬件生成的卷或静音更改,尽管 IPortEvents 可用于任何类型的事件通知。 IPortEvents 接口是可选的下边缘端口驱动程序接口。 例如,它可用于通知 混音器 控制或混音器行更改的应用程序。 有关 混音器 API 的信息,请参阅 Microsoft Windows SDK 文档。

微型端口驱动程序以公开属性的方式公开事件:通过自动化表(请参阅 PCAUTOMATION_TABLE)。 以下对象(所有这些对象都由微型端口驱动程序公开)可以指定包含属性和/或事件的自动化表:

  • 微型端口驱动程序实现的筛选器
  • 筛选器公开的每个引脚
  • 筛选器公开的每个节点
自动化表中的每个事件项都是一种类型 PCEVENT_ITEM 结构,用于指定以下内容:
  • 事件集
  • 集中的事件
  • 指示支持选项的标志
  • 指向事件的处理程序的函数指针
启动适配器驱动程序并将其端口/微型端口驱动程序对注册为系统筛选器后,WDMAud 系统驱动程序(将 混音器 API 调用转换为 WDM 音频驱动程序的 KS 命令后,将打开每个端口/微型端口驱动程序对并询问其功能。 在此过程中,WDMAud 将遍历微型端口驱动程序的筛选器拓扑,以搜索支持硬件事件的控制节点。 事件由事件集 GUID KSEVENTSETID_AudioControlChange 和事件 ID KSEVENT_CONTROL_CHANGE的组合表示。 当 WdmAud 找到这些内容时,它将启用事件,从而有效地将自身注册为事件的客户端。 随后,每次微型端口驱动程序向事件发出信号时,都会通知 WDMAud,WDMAud 会为其客户端生成相应的窗口消息。

除了在自动化表中公开事件之外,需要公开事件的微型端口驱动程序还应查询端口驱动程序的 IPortEvents 接口。

本部分还介绍了用于处理事件请求的以下例程:

EventHandler

遗产

IPortEvents 接口继承自 IUnknown 接口。

方法

IPortEvents 接口具有这些方法。

 
IPortEvents::AddEventToEventList

AddEventToEventList 方法将事件添加到端口驱动程序的事件列表中。
IPortEvents::GenerateEventList

GenerateEventList 方法通过端口驱动程序的事件条目列表通知客户端特定事件已发生。

要求

要求 价值
目标平台 窗户
标头 portcls.h