EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST função de retorno de chamada (acxrequest.h)
O EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST retorno de chamada é usado pelo driver para lidar com notificações de eventos.
Sintaxe
EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST EvtAcxObjectProcessEventRequest;
void EvtAcxObjectProcessEventRequest(
ACXOBJECT Object,
ACXEVENT Event,
ACX_EVENT_VERB Verb,
ACXEVENTDATA EventData,
WDFREQUEST Request
)
{...}
Parâmetros
Object
Um objeto ACX associado à solicitação.
Event
O objeto ACXEVENT (descrito em Resumo de Objetos ACX). Um objeto AcxEvent que representa uma notificação assíncrona disponível no nível do driver. Os eventos podem ser adicionados a AcxCircuits, AcxStreams, AcxElements e AcxPins. Internamente, eles são expostos como eventos de KS para camadas superiores.
Verb
Um verbo da enumeração ACX_EVENT_VERB que descreve o tipo de operação.
EventData
Um objeto ACXEVENTDATA ACX opcional que fornece informações sobre o evento.
Request
Um objeto WDFREQUEST opcional associado a esta operação.
Para obter mais informações sobre como trabalhar com objetos de solicitação do WDF, consulte Criando objetos de solicitação de estrutura e cabeçalho wdfrequest.h.
Retornar valor
Nenhum
Comentários
Exemplo
O uso de exemplo é mostrado abaixo.
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);
}
}
Requisitos do ACX
Versão mínima do ACX: 1.0
Para obter mais informações sobre versões do ACX, consulte Visão geral da versão do ACX.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | acxrequest.h |
IRQL | PASSIVE_LEVEL |
Confira também
- [cabeçalho acxrequest.h] (index.md)