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:
- O manipulador pode chamar QueryInterface na interface IUnknown do objeto MajorTarget para obter uma referência à interface IMiniportWaveCyclic do objeto.
- O manipulador pode chamar QueryInterface na interface IUnknown do objeto MinorTarget para obter uma referência à interface IMiniportWaveCyclicStream do objeto.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | portcls.h (inclua Portcls.h) |