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。

MajorTargetMinorTarget 成员分别是指向main微型端口对象和关联的流对象的 IUnknown 指针。 事件处理程序可以查询这些对象的微型端口和流接口。

例如,如果事件请求的目标是 WaveCyclic 筛选器上的引脚实例:

要求

要求
Header portcls.h (包括 Portcls.h)

另请参阅

EventHandler

IPortEvents::AddEventToEventList

KSEVENT_ENTRY

PCEVENT_ITEM

PCFILTER_NODE