EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST fonction de rappel (acxrequest.h)
Le rappel EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST est utilisé par le pilote pour gérer les notifications d’événements.
Syntaxe
EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST EvtAcxObjectProcessEventRequest;
void EvtAcxObjectProcessEventRequest(
ACXOBJECT Object,
ACXEVENT Event,
ACX_EVENT_VERB Verb,
ACXEVENTDATA EventData,
WDFREQUEST Request
)
{...}
Paramètres
Object
Objet ACX associé à la demande.
Event
Objet ACXEVENT (décrit dans Résumé des objets ACX). Objet AcxEvent qui représente une notification asynchrone disponible au niveau du pilote. Les événements peuvent être ajoutés à AcxCircuits, AcxStreams, AcxElements et AcxPins. En interne, ils sont exposés en tant qu’événements KS aux couches supérieures.
Verb
Verbe de l’énumération ACX_EVENT_VERB qui décrit le type d’opération.
EventData
Objet ACXEVENTDATA facultatif qui fournit des informations sur l’événement.
Request
Objet WDFREQUEST facultatif associé à cette opération.
Pour plus d’informations sur l’utilisation des objets de requête WDF, consultez Création d’objets de requête d’infrastructure et de l’en-tête wdfrequest.h.
Valeur de retour
None
Remarques
Exemple
L’exemple d’utilisation est illustré ci-dessous.
EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST CodecR_EvtMuteElementChangeEventCallback;
...
VOID
CodecR_EvtMuteElementChangeEventCallback(
_In_ ACXOBJECT Object,
_In_ ACXEVENT Event,
_In_ ACX_EVENT_VERB Verb,
_In_opt_ ACXEVENTDATA EventData,
_In_opt_ WDFREQUEST Request
)
{
NTSTATUS status = STATUS_NOT_SUPPORTED;
PCODEC_MUTE_ELEMENT_CONTEXT muteCtx = NULL;
CODEC_MUTE_EVENT_CONTEXT * muteEventCtx;
PAGED_CODE();
muteCtx = GetCodecMuteElementContext(Object);
ASSERT(muteCtx);
// for testing.
muteEventCtx = GetCodecMuteEventContext(Event);
ASSERT(muteEventCtx);
//
// Take the correct action: enable/disable.
//
switch (Verb)
{
case AcxEventVerbEnable:
AcxEventAddEventData(Event, EventData);
WdfTimerStart(muteEventCtx->Timer, WDF_REL_TIMEOUT_IN_MS(10));
status = STATUS_SUCCESS;
break;
case AcxEventVerbBasicSupport:
status = STATUS_SUCCESS;
break;
case AcxEventVerbDisable:
ASSERT(Request == NULL);
//
// Verb is AcxEventVerbDisable;
// It is ok to generate events even if no one is listening.
// If present, ACX completes the request associated with this action.
//
break;
default:
ASSERT(FALSE);
status = STATUS_INVALID_DEVICE_REQUEST;
break;
}
if (Request != NULL)
{
WdfRequestComplete(Request, status);
}
}
Configuration requise d’ACX
Version minimale d’ACX : 1.0
Pour plus d’informations sur les versions d’ACX, consultez Vue d’ensemble des versions d’ACX.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | acxrequest.h |
IRQL | PASSIVE_LEVEL |
Voir aussi
- [en-tête acxrequest.h] (index.md)