次の方法で共有


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、ACXSTREAMs、ACXELEMENT、および ACXPIN に追加できます。 内部的には、上位レイヤーに KS イベントとして公開されます。 KS イベントの詳細については、「 KS イベント」を参照してください。

このコード snip の例では、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 バージョンの概要」を参照してください。

要件

要件
Header acxevents.h
IRQL PASSIVE_LEVEL

こちらもご覧ください