IPortEvents::GenerateEventList method (portcls.h)

The GenerateEventList method notifies clients through the port driver's list of event entries that a particular event has occurred.

Syntax

void GenerateEventList(
  [in, optional] GUID  *Set,
  [in]           ULONG EventId,
  [in]           BOOL  PinEvent,
  [in]           ULONG PinId,
  [in]           BOOL  NodeEvent,
  [in]           ULONG NodeId
);

Parameters

[in, optional] Set

Identifies the event set that the event belongs to. This parameter is a pointer to a GUID. Set is an optional parameter. A Set value of NULL is a wild card that matches all event-set GUIDs in the list. Otherwise, only event entries with matching event-set GUIDs are signaled.

[in] EventId

Specifies an event ID. This parameter specifies the index of the event in the event set. If an event set contains n events, valid event IDs are in the range 0 to n-1. Only event entries with matching event IDs are signaled.

[in] PinEvent

Specifies whether PinId should be used in qualifying which event entries to signal. If PinEvent is FALSE, PinId is treated as a wild card that matches all pin IDs in the list.

[in] PinId

Specifies the pin ID of the event to be signaled. If PinEvent is TRUE, then only event entries with matching pin IDs are signaled.

[in] NodeEvent

Indicates whether NodeId should be used in qualifying which event entries to signal. If NodeEvent is FALSE, NodeId is treated as a wild card that matches all node IDs in the list.

[in] NodeId

Specifies the node ID of the event to be signaled. If NodeEvent is TRUE, then only event entries with matching node IDs are signaled.

Return value

None

Remarks

This method is used by miniport drivers to signal event entries in the port driver's event list. In response to the miniport driver calling this method, the port driver walks its list of event entries and signals all registered event entries that meet the criteria expressed by the call parameters.

Although callers of GenerateEventList can be running at any IRQL, they are subject to some limitations when calling at IRQL > DISPATCH_LEVEL. Specifically, if the current implementation of GenerateEventList is called at IRQL > DISPATCH_LEVEL, the method queues a DPC to process the event list. That DPC contains the parameter context for a single call. As a result, signaling events might occasionally be missed if multiple calls are made at IRQL > DISPATCH_LEVEL.

Requirements

Requirement Value
Target Platform Universal
Header portcls.h (include Portcls.h)
IRQL Any level. (See Remarks section.)

See also

EventHandler

IPortEvents

IPortEvents::AddEventToEventList