EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST Rückruffunktion (acxrequest.h)
Der EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST Rückrufs wird vom Treiber verwendet, um Ereignisbenachrichtigungen zu verarbeiten.
Syntax
EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST EvtAcxObjectProcessEventRequest;
void EvtAcxObjectProcessEventRequest(
ACXOBJECT Object,
ACXEVENT Event,
ACX_EVENT_VERB Verb,
ACXEVENTDATA EventData,
WDFREQUEST Request
)
{...}
Parameter
Object
Ein ACX-Objekt, das der Anforderung zugeordnet ist.
Event
Das ACXEVENT-Objekt (beschrieben in Zusammenfassung der ACX-Objekte). Ein AcxEvent-Objekt, das eine asynchrone Benachrichtigung darstellt, die auf Treiberebene verfügbar ist. Ereignisse können AcxCircuits, AcxStreams, AcxElements und AcxPins hinzugefügt werden. Intern werden sie als KS-Ereignisse für obere Schichten verfügbar gemacht.
Verb
Ein Verb aus der ACX_EVENT_VERB-Enumeration , das den Vorgangstyp beschreibt.
EventData
Ein optionales ACXEVENTDATA-ACX-Objekt, das Informationen zum Ereignis bereitstellt.
Request
Ein optionales WDFREQUEST-Objekt, das diesem Vorgang zugeordnet ist.
Weitere Informationen zum Arbeiten mit WDF-Anforderungsobjekten finden Sie unter Creating Framework Request Objects and wdfrequest.h header.
Rückgabewert
Keine
Bemerkungen
Beispiel
Die Verwendungsbeispiele finden Sie unten.
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);
}
}
ACX-Anforderungen
AcX-Mindestversion: 1.0
Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.
Anforderungen
Anforderung | Wert |
---|---|
Header | acxrequest.h |
IRQL | PASSIVE_LEVEL |
Weitere Informationen
- [acxrequest.h header] (index.md)