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


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

MinorTarget

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

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 на основной минипорт и связанный объект потока соответственно. Обработчик событий может запрашивать эти объекты для своих мини-портов и потоковых интерфейсов.

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

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

Требования

Требование Ценность
Заголовок portcls.h (include Portcls.h)

См. также

EventHandler

IPortEvents::AddEventToEventList

KSEVENT_ENTRY

PCEVENT_ITEM

PCFILTER_NODE