структура 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) |