PCEVENT_ITEM structure (portcls.h)

The PCEVENT_ITEM structure is used to describe an event that is supported by a particular filter, pin, or node.

Syntax

typedef struct {
  const GUID         *Set;
  ULONG              Id;
  ULONG              Flags;
  PCPFNEVENT_HANDLER Handler;
} PCEVENT_ITEM, *PPCEVENT_ITEM;

Members

Set

Specifies the event set. This member is a pointer to a GUID that uniquely identifies the event set. See the list of event-set GUIDs in Audio Drivers Event Sets.

Id

Specifies the event ID. This member identifies an event item within the event set. If the event set contains N items, valid event IDs are integers in the range 0 to N-1.

Flags

Specifies the type of event. This member is set to one of the following values:

PCEVENT_ITEM_FLAG_ENABLE

Indicates the event notification should be enabled for this event type. The driver should continue event notification until the client explicitly disables it.

PCEVENT_ITEM_FLAG_ONESHOT

Indicates that the event notification should be enabled for the next occurrence of this event only. The client does not (and should not) disable the event once it has occurred.

PCEVENT_ITEM_FLAG_BASICSUPPORT

If the client specifies this flag, the driver returns STATUS_SUCCESS if it supports the event and an error code if it does not.

Handler

Pointer to the miniport driver's event-handler routine. This member is a function pointer of type PCPFNEVENT_HANDLER, which is defined as follows:

  typedef NTSTATUS (*PCPFNEVENT_HANDLER)
  (
      IN PPCEVENT_REQUEST  EventRequest
  );

When calling the Handler routine, the caller passes in a single call parameter, which is a pointer to a caller-allocated PCEVENT_REQUEST structure.

Remarks

The PCEVENT_ITEM structure specifies a particular event item in an automation table. The PCAUTOMATION_TABLE structure points to an array of PCEVENT_ITEM structures.

In WDM audio, the target for an event request is either a pin instance or a node on a pin. A filter instance cannot be the target of an event request.

Requirements

Requirement Value
Header portcls.h (include Portcls.h)

See also

PCAUTOMATION_TABLE

PCEVENT_REQUEST