次の方法で共有


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

関連項目

  • acxevents.h ヘッダー する