다음을 통해 공유


AcxEventCreate 함수(acxevents.h)

AcxEventCreate 함수는 ACX 이벤트를 만듭니다.

구문

NTSTATUS AcxEventCreate(
  ACXOBJECT              Object,
  PWDF_OBJECT_ATTRIBUTES Attributes,
  PACX_EVENT_CONFIG      Config,
  ACXEVENT               *Event
);

매개 변수

Object

ACX 개체 요약에 설명된 ACXOBJECT입니다.

Attributes

다양한 개체의 값을 설정하는 데 사용되는 WDF_OBJECT_ATTRIBUTES 사용하여 정의된 추가 특성: 콜백 정리 및 삭제, 컨텍스트 형식 및 부모 개체를 지정합니다.

Config

ACX 이벤트 구성을 정의하는 ACX_EVENT_CONFIG 구조체입니다.

Event

새로 만든 ACXEVENT 개체입니다( ACX 개체 요약에 설명됨).

반환 값

호출이 성공하면 를 반환합니다 STATUS_SUCCESS . 그렇지 않으면 적절한 오류 코드를 반환합니다. 자세한 내용은 NTSTATUS 값 사용을 참조하세요.

설명

ACXEVENT는 드라이버 수준에서 사용할 수 있는 비동기 알림을 나타냅니다. 이벤트를 ACXCIRCUIT, ACXSTREAM, ACXELEMENT 및 ACXPIN에 추가할 수 있습니다. 내부적으로는 상위 계층에 KS 이벤트로 노출됩니다. KS 이벤트에 대한 자세한 내용은 KS 이벤트를 참조하세요.

예제

이 예제 코드 캡처는 ACX에서 AcxEventCreate를 사용하여 오디오 잭 변경 이벤트를 만드는 방법을 보여줍니다.

    NTSTATUS status = STATUS_SUCCESS;
    
    PAGED_CODE();

    ACX_EVENT_CALLBACKS         eventCallbacks;
    ACX_EVENT_CONFIG            eventCfg;
    AFX_PIN_EVENT_CONTEXT       *eventCtx;
    ACXEVENT                    jackEvent;
    WDF_OBJECT_ATTRIBUTES       attributes;

    //
    // Add jack info change event to this jack object
    //
    ACX_EVENT_CALLBACKS_INIT(&eventCallbacks);
    eventCallbacks.EvtAcxEventEnable = &AfxPin::EvtJackEventEnableCallback;
    eventCallbacks.EvtAcxEventDisable = &AfxPin::EvtJackEventDisableCallback;

    ACX_EVENT_CONFIG_INIT(&eventCfg);
    eventCfg.Set = &KSEVENTSETID_PinCapsChange;
    eventCfg.Id = KSEVENT_PINCAPS_JACKINFOCHANGE;
    eventCfg.Callbacks = &eventCallbacks;

    WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, AFX_PIN_EVENT_CONTEXT);
    attributes.ParentObject = GetObjectHandle();
    status = AcxEventCreate(GetObjectHandle(), &attributes, &eventCfg, &jackEvent);

ACX 요구 사항

최소 ACX 버전: 1.0

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

요구 사항

요구 사항
헤더 acxevents.h
IRQL PASSIVE_LEVEL

추가 정보