다음을 통해 공유


EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST 콜백 함수(acxrequest.h)

EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST 콜백은 드라이버에서 이벤트 알림을 처리하는 데 사용됩니다.

구문

EVT_ACX_OBJECT_PROCESS_EVENT_REQUEST EvtAcxObjectProcessEventRequest;

void EvtAcxObjectProcessEventRequest(
  ACXOBJECT Object,
  ACXEVENT Event,
  ACX_EVENT_VERB Verb,
  ACXEVENTDATA EventData,
  WDFREQUEST Request
)
{...}

매개 변수

Object

요청과 연결된 ACX 개체입니다.

Event

ACXEVENT 개체( ACX 개체 요약에 설명됨). 드라이버 수준에서 사용할 수 있는 비동기 알림을 나타내는 AcxEvent 개체입니다. 이벤트는 AcxCircuits, AcxStreams, AcxElements 및 AcxPins에 추가할 수 있습니다. 내부적으로는 상위 계층에 KS 이벤트로 노출됩니다.

Verb

작업 유형을 설명하는 ACX_EVENT_VERB 열거형의 동사입니다.

EventData

이벤트에 대한 정보를 제공하는 선택적 ACXEVENTDATA ACX 개체입니다.

Request

이 작업과 연결된 선택적 WDFREQUEST 개체입니다.

WDF 요청 개체 작업에 대한 자세한 내용은 프레임워크 요청 개체wdfrequest.h 헤더 만들기를 참조하세요.

반환 값

없음

설명

예제

사용 예제는 다음과 같습니다.


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 요구 사항

최소 ACX 버전: 1.0

ACX 버전에 대한 자세한 내용은 ACX 버전 개요를 참조하세요.

요구 사항

요구 사항
헤더 acxrequest.h
IRQL PASSIVE_LEVEL

추가 정보

  • [acxrequest.h 헤더] (index.md)