次の方法で共有


EVT_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON コールバック関数 (wdfdevice.h)

[KMDF と UMDF に適用]

ドライバーの EvtDeviceArmWakeFromSxWithReason イベント コールバック関数アーム (つまり、有効) は、低電力デバイス状態の間にスリープ解除信号をトリガーできるようにデバイスです。 スリープ解除信号により、デバイスは動作状態 (D0) に入り、システムが動作状態 (S0) に入ります。

構文

EVT_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON EvtWdfDeviceArmWakeFromSxWithReason;

NTSTATUS EvtWdfDeviceArmWakeFromSxWithReason(
  [in] WDFDEVICE Device,
  [in] BOOLEAN DeviceWakeEnabled,
  [in] BOOLEAN ChildrenArmedForWake
)
{...}

パラメーター

[in] Device

フレームワーク デバイス オブジェクトへのハンドル。

[in] DeviceWakeEnabled

TRUE の場合、システムをスリープ解除するデバイスの機能が有効になっていることを示すブール値。

[in] ChildrenArmedForWake

TRUE の場合、システムをスリープ解除する 1 つ以上の子デバイスの機能が有効になっていることを示すブール値。

戻り値

EvtDeviceArmWakeFromSxWithReason コールバック関数でエラーが発生しない場合は、NT_SUCCESS(status) が TRUE であるSTATUS_SUCCESSまたは別の状態値を返す必要があります。 それ以外の場合は、NT_SUCCESS(status) が FALSE状態値を返す必要があります。

NT_SUCCESS(status) が FALSE の場合、フレームワークはドライバーの EvtDeviceDisarmWakeFromSx コールバック関数を呼び出します。 (フレームワークは、PnP マネージャーにデバイスの障害を報告しません。)

注釈

バージョン 1.7 以降のバージョンの KMDF では、 EvtDeviceArmWakeFromSx コールバック関数に加えて 、EvtDeviceArmWakeFromSx コールバック関数がサポートされています。

EvtDeviceArmWakeFromSxWithReason コールバック関数を登録するには、ドライバーで WdfDeviceInitSetPowerPolicyEventCallbacks を呼び出す必要があります。 ドライバーは、 EvtDeviceArmWakeFromSx コールバック関数または EvtDeviceArmWakeFromSxWithReason コールバック関数を登録できますが、両方は登録できません。

EvtDeviceArmWakeFromSxWithReason コールバック関数には、フレームワークが呼び出した理由をドライバーが判断できるようにする 2 つのパラメーターが用意されています。

  • WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS構造体のEnabled メンバーが、デバイスがシステムをスリープ解除できることを示している場合、フレームワークは DeviceWakeEnabled パラメーターを TRUE に設定します。
  • 1 つ以上のデバイスの子デバイスがシステムをスリープ解除でき、WDF_DEVICE_POWER_POLICY_WAKE_SETTINGSの ArmForWakeIfChildrenAreArmedForWake メンバーが TRUE に設定されている場合、フレームワークは ChildrenArmedForWake パラメーターを TRUE に設定します。
次のシナリオにより、これらのパラメーターのいずれかまたは両方を TRUE にすることができます。
  • ドライバーのデバイスは、システムをスリープ解除するために有効になっています。
  • 1 つ以上のデバイスの子デバイスでシステムのスリープ解除が有効になっています。
  • デバイスとその 1 つ以上の子デバイスの両方で、システムのスリープ解除が有効になっています。
EvtDeviceArmWakeFromSxWithReason コールバック関数の詳細については、「EvtDeviceArmWakeFromSx」の「解説」セクションを参照してください。

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.7
最小 UMDF バージョン 2.0
Header wdfdevice.h (Wdf.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

EvtDeviceArmWakeFromS0

EvtDeviceArmWakeFromSx

EvtDeviceDisarmWakeFromSx