PCEVENT_REQUEST struttura (portcls.h)
La struttura PCEVENT_REQUEST specifica una richiesta di evento.
Sintassi
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;
Members
MajorTarget
Puntatore IUnknown all'oggetto miniport principale. Questo membro contiene il puntatore UnknownMiniport passato in precedenza al metodo IPort::Init .
MinorTarget
Puntatore IUnknown a un oggetto di flusso associato all'oggetto miniport MajorTarget . Questo membro contiene il puntatore a oggetti di flusso recuperato in precedenza dal metodo IMiniportXxx::NewStream, ad esempio il parametro Stream del metodo IMiniportWaveCyclic::NewStream.
Node
Specifica un ID nodo. Questo membro identifica il nodo di destinazione per la richiesta. Se la destinazione non è un nodo, questo membro è impostato su ULONG(-1).
EventItem
Puntatore alla struttura PCEVENT_ITEM per questa richiesta
EventEntry
Puntatore alla struttura KSEVENT_ENTRY per questa richiesta
Verb
Specifica il tipo di richiesta di evento. Questo membro deve essere impostato su uno dei valori della tabella seguente.
Valore | Significato |
---|---|
PCEVENT_VERB_ADD | Indica che un client vuole abilitare l'evento specificato. Dopo aver convalidato l'evento e le informazioni di destinazione, la routine EventHandler aggiunge l'evento chiamando il metodo IPortEvents::AddEventToEventList . |
PCEVENT_VERB_REMOVE | Notifica al Gestore eventi che un evento viene disabilitato e rimosso dall'elenco. |
PCEVENT_VERB_SUPPORT | Questa richiesta è una query per il supporto. Se il driver miniport supporta l'evento per la destinazione identificata nella richiesta, deve eseguire questa query. In caso contrario, deve non riuscire la query. |
PCEVENT_VERB_NONE | Non è richiesto alcun intervento. |
Irp
Puntatore all'IRP contenente la richiesta di evento
Commenti
Si tratta della struttura che il driver della porta passa alla routine EventHandler del driver miniport. La struttura PCEVENT_ITEM contiene un puntatore di funzione a un gestore eventi che accetta un puntatore PCEVENT_REQUEST come solo parametro di chiamata. Il driver di porta alloca una struttura PCEVENT_REQUEST , estrae le informazioni pertinenti dalla richiesta di evento originale (a cui punta il membro Irp ) e carica le informazioni in questa struttura prima di chiamare il gestore.
Nell'audio WDM la destinazione di una richiesta di evento può essere un'istanza di pin ma non un'istanza di filtro. La destinazione può includere anche un ID nodo.
I membri MajorTarget e MinorTarget sono rispettivamente puntatori IUnknown all'oggetto miniport principale e a un oggetto di flusso associato. Il gestore eventi può eseguire query su questi oggetti per le interfacce miniport e stream.
Ad esempio, se la destinazione per la richiesta di evento è un'istanza di pin in un filtro WaveCyclic:
- Il gestore può chiamare QueryInterface nell'interfaccia IUnknown dell'oggetto MajorTarget per ottenere un riferimento all'interfaccia IMiniportWaveCyclic dell'oggetto.
- Il gestore può chiamare QueryInterface nell'interfaccia IUnknown dell'oggetto MinorTarget per ottenere un riferimento all'interfaccia IMiniportWaveCyclicStream dell'oggetto.
Requisiti
Requisito | Valore |
---|---|
Intestazione | portcls.h (includere Portcls.h) |