EVT_ACX_FACTORY_CIRCUIT_POWER_DOWN コールバック関数 (acxcircuit.h)
EVT_ACX_FACTORY_CIRCUIT_POWER_DOWN コールバックは、ACXFACTORYCIRCUIT オブジェクトの電源ダウン パスに機能を追加するためにドライバーによって使用されます。
構文
EVT_ACX_FACTORY_CIRCUIT_POWER_DOWN EvtAcxFactoryCircuitPowerDown;
NTSTATUS EvtAcxFactoryCircuitPowerDown(
WDFDEVICE Device,
ACXFACTORYCIRCUIT Factory,
WDF_POWER_DEVICE_STATE TargetState
)
{...}
パラメーター
Device
ACX 回線に関連付けられている WDFDEVICE オブジェクト ( フレームワーク オブジェクトの概要に関するページを参照)。
Factory
既存の回路ファクトリ ACXFACTORYCIRCUIT オブジェクト。 ACX オブジェクトの詳細については、「 ACX オブジェクトの概要」を参照してください。
TargetState
ターゲット デバイスの電源状態を識別するWDF_POWER_DEVICE_STATE列挙。
戻り値
STATUS_SUCCESS
呼び出しが成功した場合は を返します。 それ以外の場合は、適切なエラー コードを返します。 詳細については、「 NTSTATUS 値の使用」を参照してください。
注釈
EvtAcxFactoryCircuitPrepareHardware コールバック関数を登録するには、ドライバーで AcxFactoryCircuitInitSetAcxCircuitPnpPowerCallbacks を呼び出す必要があります。
ドライバーが EvtCircuitPowerDown コールバック関数を登録している場合、ACX フレームワークは、ドライバーのデバイスの 1 つが動作 (D0) 状態を離れるたびに関数を呼び出します。 次のいずれかが発生すると、デバイスは D0 状態を残します。
- システムとそのすべてのデバイスは、動作状態を残し、低電力状態に入りようとしています。
- デバイスが低電力アイドルをサポートしている場合、デバイスはアイドル状態であるため、低電力状態に入りそうになっています。
- プラグ アンド プレイ マネージャーは、システムのハードウェア リソースを再配布しようとしています。
- ユーザーは、通常、アプリケーションのユーザー インターフェイスを使用して、デバイスを削除することを示しています。
- また、デバイスが予期せず削除された (突然削除された) 後、フレームワークは EvtFactoryCircuitPowerDown コールバック関数も呼び出します。
フレームワークがこのコールバック関数を呼び出すタイミングの詳細については、「 PnP と Power Management のシナリオ」を参照してください。
デバイスが突然削除されていない限り、ACX フレームワークは、デバイスの割り込みを無効にした直後に、デバイスの電源が D0 から減る前、および WDF が関連付けられているデバイスでドライバーの EvtDeviceD0Exit コールバックを呼び出す前に、このコールバック関数を呼び出します。 TargetState パラメーターは、デバイスが入力しようとしているデバイスの電源状態を識別します。
EvtFactoryCircuitPowerDown コールバック関数は、ACXFACTORYCIRCUT のハードウェアが指定された低電力状態になる前に必要な操作を実行する必要があります。たとえば、ドライバーが後で ACXFACTORYCIRCUIT のハードウェアを D0 電源状態に復元するために必要な情報を保存するなどです。
TargetState が WdfPowerDeviceD3Final の場合は、システムがオフになっているか、関連付けられているデバイスが削除されようとしているか、リソースの再調整が進行中であると想定する必要があります。 ドライバーが情報を保存する必要がある場合は、ディスクまたはその他の永続的な記憶域メディアに書き込む必要があります。
このコールバック関数を提供するドライバーの詳細については、「 Function Driver での PnP と Power Management のサポート」を参照してください。
ACX の要件
最小 ACX バージョン: 1.0
ACX バージョンの詳細については、「 ACX バージョンの概要」を参照してください。
要件
要件 | 値 |
---|---|
Header | acxcircuit.h |
IRQL | PASSIVE_LEVEL |