次の方法で共有


WdfDeviceSetPowerCapabilities 関数 (wdfdevice.h)

[KMDF と UMDF に適用]

WdfDeviceSetPowerCapabilities メソッドは、デバイスの電源機能を報告します。

構文

void WdfDeviceSetPowerCapabilities(
  [in] WDFDEVICE                      Device,
  [in] PWDF_DEVICE_POWER_CAPABILITIES PowerCapabilities
);

パラメーター

[in] Device

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

[in] PowerCapabilities

ドライバーによって割り当てられた WDF_DEVICE_POWER_CAPABILITIES 構造体へのポインター。

戻り値

何一つ

備考

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

ドライバーは通常、次のいずれかのコールバック関数内から WdfDeviceSetPowerCapabilities 呼び出します。

  • EvtDriverDeviceAdd

  • EvtDevicePrepareHardware

  • EvtDeviceD0Entry (PreviousState パラメーターの値が WdfPowerDeviceD3Final 場合)

  • EvtDeviceSelfManagedIoInit

  • EvtChildListCreateDevice

デバイスのドライバー スタック内の複数のドライバーが WdfDeviceSetPowerCapabilities 呼び出す場合、Power Manager は、スタック内で最も高いドライバーによって提供される値を使用します。

次のコード例では、WDF_DEVICE_POWER_CAPABILITIES構造体を初期化し、WdfDeviceSetPowerCapabilitiesを呼び出します。

WDF_DEVICE_POWER_CAPABILITIES powerCaps;

WDF_DEVICE_POWER_CAPABILITIES_INIT(&powerCaps);
powerCaps.DeviceD1 = WdfTrue;
powerCaps.WakeFromD1 = WdfTrue;
powerCaps.DeviceWake = PowerDeviceD1;
powerCaps.DeviceState[PowerSystemWorking] = PowerDeviceD1;
powerCaps.DeviceState[PowerSystemSleeping1] = PowerDeviceD1;
powerCaps.DeviceState[PowerSystemSleeping2] = PowerDeviceD2;
powerCaps.DeviceState[PowerSystemSleeping3] = PowerDeviceD2;
powerCaps.DeviceState[PowerSystemHibernate] = PowerDeviceD3;
powerCaps.DeviceState[PowerSystemShutdown] = PowerDeviceD3;

WdfDeviceSetPowerCapabilities(
                              device,
                              &powerCaps
                              );

必要条件

要件 価値
ターゲット プラットフォーム 万国
最小 KMDF バージョン 1.0
UMDF の最小バージョン する 2.0
ヘッダー wdfdevice.h (Wdf.h を含む)
ライブラリ Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

関連項目

WDF_DEVICE_POWER_CAPABILITIES

WDF_DEVICE_POWER_CAPABILITIES_INIT

WdfDeviceSetPnpCapabilities