EVT_ACX_CIRCUIT_COMPOSITE_DEINITIALIZE回调函数 (acxcircuit.h)

当 ACX Manager 取消初始化复合线路时,驱动程序使用 EVT_ACX_CIRCUIT_COMPOSITE_CIRCUIT_DEINITIALIZE 回调对复合线路执行任何取消初始化。

语法

EVT_ACX_CIRCUIT_COMPOSITE_DEINITIALIZE EvtAcxCircuitCompositeDeinitialize;

void EvtAcxCircuitCompositeDeinitialize(
  WDFDEVICE Device,
  ACXCIRCUIT Circuit,
  ACXOBJECTBAG CompositeProperties
)
{...}

参数

Device

WDFDEVICE 对象 (与指定的 ACXCIRCUIT 关联的 框架对象) 摘要 中所述。

Circuit

正在取消初始化的 ACXCIRCUIT 对象。 有关 ACX 对象的详细信息,请参阅 ACX 对象的摘要

CompositeProperties

CircuitProperties 的可选句柄。 这是 ACXCIRCUIT 属性的可选 ACXOBJECTBAG 对象。

返回值

备注

仅当存在关联的 WDFDEVICE 时,ACX 才能为复合 ACXCIRCUIT 调用此回调。 也就是说,如果意外删除了关联的 WDFDEVICE (SR) ,则 ACX 将无法调用回调,因为其关联的 PnP 接口已关闭。

示例

此示例代码演示驱动程序如何从指定的线路属性对象包检索线路属性。

示例用法如下所示。

VOID
DspR_EvtCircuitCompositeDeinitialize(
    _In_     WDFDEVICE      Device,
    _In_     ACXCIRCUIT     Circuit,
    _In_opt_ ACXOBJECTBAG   CompositeProperties
    )
{
    DECLARE_CONST_ACXOBJECTBAG_SYSTEM_PROPERTY_NAME(UniqueID);
    NTSTATUS    status      = STATUS_SUCCESS;
    GUID        uniqueId    = {0};

    PAGED_CODE();

    UNREFERENCED_PARAMETER(Device);
    UNREFERENCED_PARAMETER(Circuit);

    if (CompositeProperties)
    {
        status = AcxObjectBagRetrieveGuid(CompositeProperties, &UniqueID, &uniqueId);
        if (!NT_SUCCESS(status))
        {
            // Log error.
        }
    }
}

ACX 要求

最低 ACX 版本: 1.0

有关 ACX 版本的详细信息,请参阅 ACX 版本概述

要求

要求
Header acxcircuit.h
IRQL PASSIVE_LEVEL

另请参阅