Поделиться через


структура 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 на main мини-объект. Этот элемент содержит указатель UnknownMiniport , который драйвер адаптера ранее передал в метод IPort::Init .

MinorTarget

Указатель IUnknown на объект потока, связанный с объектом мини-порта MajorTarget . Этот элемент содержит указатель stream-object, который драйвер порта ранее извлек из метода IMiniportXxx::NewStream (например, параметр Stream метода IMiniportWaveCyclic::NewStream).

Node

Указывает идентификатор узла. Этот член идентифицирует целевой узел для запроса. Если целевой объект не является узлом, для этого элемента устанавливается значение 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 целевой объект запроса на событие может быть экземпляром закреплений, но не экземпляром фильтра. Целевой объект также может содержать идентификатор узла.

Элементы MajorTarget и MinorTarget являются указателями IUnknown на main объект miniport и связанный объект потока соответственно. Обработчик событий может запрашивать эти объекты для их мини-портов и потоковых интерфейсов.

Например, если целевой объект для запроса на событие является экземпляром закрепления в фильтре WaveCyclic:

  • Обработчик может вызвать QueryInterface в интерфейсе IUnknown объекта MajorTarget, чтобы получить ссылку на интерфейс IMiniportWaveCyclic объекта.
  • Обработчик может вызвать QueryInterface в интерфейсе IUnknown объекта MinorTarget, чтобы получить ссылку на интерфейс IMiniportWaveCyclicStream объекта.

Требования

Требование Значение
Заголовок portcls.h (включая Portcls.h)

См. также раздел

Eventhandler

IPortEvents::AddEventToEventList

KSEVENT_ENTRY

PCEVENT_ITEM

PCFILTER_NODE