次の方法で共有


EVT_ACX_CIRCUIT_COMPOSITE_DEINITIALIZE コールバック関数 (acxcircuit.h)

EVT_ACX_CIRCUIT_COMPOSITE_CIRCUIT_DEINITIALIZE コールバックは、ACX マネージャーによって初期化解除されるときに、複合回線の初期化解除を行うためにドライバーによって使用されます。

構文

EVT_ACX_CIRCUIT_COMPOSITE_DEINITIALIZE EvtAcxCircuitCompositeDeinitialize;

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

パラメーター

Device

指定した ACXCIRCUIT に関連付けられている WDFDEVICE オブジェクト (「フレームワーク オブジェクトの概要」で説明)。

Circuit

初期化解除中の ACXCIRCUIT オブジェクト。 ACX オブジェクトの詳細については、「 ACX オブジェクトの概要」を参照してください。

CompositeProperties

CircuitProperties への省略可能なハンドル。 これは、ACXCIRCUIT のプロパティの省略可能な ACXOBJECTBAG オブジェクトです。

戻り値

なし

解説

ACX は、関連付けられた WDFDEVICE が存在する場合にのみ、複合 ACXCIRCUIT に対してこのコールバックを呼び出すことができます。 つまり、関連付けられている WDFDEVICE が突然削除された (SR) 場合、関連付けられている PnP インターフェイスがオフになっているため、ACX はコールバックを呼び出せなくなります。

このサンプル コードは、ドライバーが指定した回線プロパティ オブジェクト バッグから回線プロパティを取得する方法を示しています。

使用例を次に示します。

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

こちらもご覧ください