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。
MajorTarget 和 MinorTarget 成员分别 IUnknown 指向主微型端口对象的指针和关联的流对象。 事件处理程序可以查询这些对象中的微型端口和流接口。
例如,如果事件请求的目标是 WaveCyclic 筛选器上的引脚实例:
- 处理程序可以在 MajorTarget 对象的 IUnknown 接口上调用 QueryInterface,以获取对对象的 IMiniportWaveCyclic 接口的引用。
- 处理程序可以在 MinorTarget 对象的 IUnknown 接口上调用 QueryInterface,以获取对对象的 IMiniportWaveCyclicStream 接口的引用。
要求
要求 | 价值 |
---|---|
标头 | portcls.h (包括 Portcls.h) |