Compartilhar via


estrutura PCEVENT_REQUEST (portcls.h)

A estrutura PCEVENT_REQUEST especifica uma solicitação de evento.

Sintaxe

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;

Membros

MajorTarget

Ponteiro IUnknown para o objeto main miniport. Esse membro contém o ponteiro UnknownMiniport que o driver do adaptador passou anteriormente para o método IPort::Init .

MinorTarget

Ponteiro IUnknown para um objeto de fluxo associado ao objeto de miniporto MajorTarget . Esse membro contém o ponteiro stream-object que o driver de porta recuperou anteriormente do método IMiniportXxx::NewStream (por exemplo, o parâmetro Stream do método IMiniportWaveCyclic::NewStream).

Node

Especifica uma ID de nó. Esse membro identifica o nó de destino para a solicitação. Se o destino não for um nó, esse membro será definido como ULONG(-1).

EventItem

Ponteiro para a estrutura de PCEVENT_ITEM para esta solicitação

EventEntry

Ponteiro para a estrutura de KSEVENT_ENTRY para esta solicitação

Verb

Especifica o tipo de solicitação de evento. Esse membro deve ser definido como um dos valores na tabela a seguir.

Valor Significado
PCEVENT_VERB_ADD Indica que um cliente deseja habilitar o evento especificado. Depois de validar as informações de evento e de destino, a rotina EventHandler adiciona o evento chamando o método IPortEvents::AddEventToEventList .
PCEVENT_VERB_REMOVE Notifica o EventHandler de que um evento está sendo desabilitado e removido da lista.
PCEVENT_VERB_SUPPORT Essa solicitação é uma consulta para suporte. Se o driver de miniporta der suporte ao evento para o destino identificado na solicitação, ele deverá ter êxito nessa consulta. Caso contrário, ela deverá falhar na consulta.
PCEVENT_VERB_NONE Nenhuma ação é necessária.

Irp

Ponteiro para o IRP que contém a solicitação de evento

Comentários

Essa é a estrutura que o driver de porta passa para a rotina EventHandler do driver de miniport. A estrutura PCEVENT_ITEM contém um ponteiro de função para um manipulador de eventos que usa um ponteiro PCEVENT_REQUEST como seu único parâmetro de chamada. O driver de porta aloca uma estrutura PCEVENT_REQUEST , extrai as informações relevantes da solicitação de evento original (para a qual o membro Irp aponta) e carrega as informações nessa estrutura antes de chamar o manipulador.

No áudio WDM, o destino de uma solicitação de evento pode ser uma instância de fixação, mas não uma instância de filtro. O destino também pode incluir uma ID de nó.

Os membros MajorTarget e MinorTarget são ponteiros IUnknown para o objeto main miniport e um objeto de fluxo associado, respectivamente. O manipulador de eventos pode consultar esses objetos para suas interfaces de miniporto e fluxo.

Por exemplo, se o destino da solicitação de evento for uma instância de pino em um filtro WaveCyclic:

Requisitos

Requisito Valor
Cabeçalho portcls.h (inclua Portcls.h)

Confira também

EventHandler

IPortEvents::AddEventToEventList

KSEVENT_ENTRY

PCEVENT_ITEM

PCFILTER_NODE