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、ACXELEMENTs 和 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 版本概述

要求

要求
Header acxevents.h
IRQL PASSIVE_LEVEL

另请参阅