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

IUnknown 指向主微型端口对象的指针。 此成员包含适配器驱动程序之前传递给 IPort::Init 方法的 UnknownMiniport 指针。

MinorTarget

IUnknown 指向与 MajorTarget 微型端口对象关联的流对象的指针。 此成员包含以前从 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 音频中,事件请求的目标可以是固定实例,但不能是筛选器实例。 目标还可以包含节点 ID。

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

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

要求

要求 价值
标头 portcls.h (包括 Portcls.h)

另请参阅

EventHandler

IPortEvents::AddEventToEventList

KSEVENT_ENTRY

PCEVENT_ITEM

PCFILTER_NODE