PCEVENT_REQUEST结构 (portcls.h)
PCEVENT_REQUEST结构指定事件请求。
语法
typedef struct _PCEVENT_REQUEST {
PUNKNOWN MajorTarget;
PUNKNOWN MinorTarget;
ULONG Node;
const PCEVENT_ITEM *EventItem;
PKSEVENT_ENTRY EventEntry;
ULONG Verb;
PIRP Irp;
} PCEVENT_REQUEST, *PPCEVENT_REQUEST;
成员
MajorTarget
指向main微型端口对象的 IUnknown 指针。 此成员包含适配器驱动程序之前传递给 IPort::Init 方法的 UnknownMiniport 指针。
MinorTarget
指向与 MajorTarget 微型端口对象关联的流对象的 IUnknown 指针。 此成员包含端口驱动程序以前从 IMiniportXxx::NewStream 方法检索的流对象指针 (例如 IMiniportWaveCyclic::NewStream 方法的 Stream 参数) 。
Node
指定节点 ID。 此成员标识请求的目标节点。 如果目标不是节点,则此成员设置为 ULONG (-1) 。
EventItem
指向此请求 的PCEVENT_ITEM 结构的指针
EventEntry
指向此请求 的KSEVENT_ENTRY 结构的指针
Verb
指定事件请求的类型。 此成员应设置为下表中的值之一。
值 | 含义 |
---|---|
PCEVENT_VERB_ADD | 指示客户端想要启用指定的事件。 验证事件和目标信息后, EventHandler 例程通过调用 IPortEvents::AddEventToEventList 方法添加事件。 |
PCEVENT_VERB_REMOVE | 通知 EventHandler 正在禁用某个事件并将其从列表中删除。 |
PCEVENT_VERB_SUPPORT | 此请求是请求支持的查询。 如果微型端口驱动程序支持请求中标识的目标的 事件,则它应成功执行此查询。 否则,它应该会使查询失败。 |
PCEVENT_VERB_NONE | 无需采取任何措施。 |
Irp
指向包含事件请求的 IRP 的指针
注解
这是端口驱动程序传递给微型端口驱动程序的 EventHandler 例程的结构。 PCEVENT_ITEM 结构包含指向事件处理程序的函数指针,该事件处理程序将PCEVENT_REQUEST指针作为其唯一的调用参数。 端口驱动程序分配 PCEVENT_REQUEST 结构,从 Irp 成员指向) 的原始事件请求 (提取相关信息,并在调用处理程序之前将信息加载到此结构中。
在 WDM 音频中,事件请求的目标可以是 pin 实例,但不能是筛选器实例。 目标还可以包含节点 ID。
MajorTarget 和 MinorTarget 成员分别是指向main微型端口对象和关联的流对象的 IUnknown 指针。 事件处理程序可以查询这些对象的微型端口和流接口。
例如,如果事件请求的目标是 WaveCyclic 筛选器上的引脚实例:
- 处理程序可以在 MajorTarget 对象的 IUnknown 接口上调用 QueryInterface,以获取对对象的 IMiniportWaveCyclic 接口的引用。
- 处理程序可以在 MinorTarget 对象的 IUnknown 接口上调用 QueryInterface,以获取对对象的 IMiniportWaveCyclicStream 接口的引用。
要求
要求 | 值 |
---|---|
Header | portcls.h (包括 Portcls.h) |