WDF_DEVICE_POWER_CAPABILITIES 結構 (wdfdevice.h)

[適用於 KMDF 和 UMDF]

WDF_DEVICE_POWER_CAPABILITIES結構描述裝置的電源功能。

語法

typedef struct _WDF_DEVICE_POWER_CAPABILITIES {
  ULONG              Size;
  WDF_TRI_STATE      DeviceD1;
  WDF_TRI_STATE      DeviceD2;
  WDF_TRI_STATE      WakeFromD0;
  WDF_TRI_STATE      WakeFromD1;
  WDF_TRI_STATE      WakeFromD2;
  WDF_TRI_STATE      WakeFromD3;
  DEVICE_POWER_STATE DeviceState[PowerSystemMaximum];
  DEVICE_POWER_STATE DeviceWake;
  SYSTEM_POWER_STATE SystemWake;
  ULONG              D1Latency;
  ULONG              D2Latency;
  ULONG              D3Latency;
  DEVICE_POWER_STATE IdealDxStateForSx;
} WDF_DEVICE_POWER_CAPABILITIES, *PWDF_DEVICE_POWER_CAPABILITIES;

成員

Size

這個結構的大小,以位元組為單位。

DeviceD1

WDF_TRI_STATE類型值,指出如果設定為 WdfTrue,裝置支援裝置睡眠狀態 D1。 如需 WDF_TRI_STATE 值的詳細資訊,請參閱下列一節。

DeviceD2

WDF_TRI_STATE類型值,指出如果設定為 WdfTrue,裝置支援裝置睡眠狀態 D2。

WakeFromD0

WDF_TRI_STATE類型值,指出如果設定為 WdfTrue,裝置可以在 D0 狀態時回應喚醒訊號。

WakeFromD1

WDF_TRI_STATE型別值,指出如果設定為 WdfTrue,裝置可以在其 D1 狀態時回應喚醒訊號。

WakeFromD2

WDF_TRI_STATE型別值,指出如果設定為 WdfTrue,裝置可以在 D2 狀態時回應喚醒訊號。

WakeFromD3

WDF_TRI_STATE型別值,指出如果設定為 WdfTrue,裝置可以在其 D3 狀態時回應喚醒訊號。

DeviceState[PowerSystemMaximum]

DEVICE_POWER_STATE類型值的數位,表示裝置針對每個系統電源狀態所支援的最電源裝置狀態。 這個陣列會使用 SYSTEM_POWER_STATE 列舉作為索引值。 如果陣列元素的值是 PowerDeviceMaximum,架構會使用作業系統為該專案儲存的任何值。 DEVICE_POWER_STATE和SYSTEM_POWER_STATE列舉定義於 wdm.h 中。 如需 DeviceState 成員的詳細資訊,請參閱 DeviceState

DeviceWake

DEVICE_POWER_STATE型別值,指出裝置可以從中將喚醒訊號傳送至系統的最低裝置電源狀態。 如果此值為 PowerDeviceMaximum,架構會針對此成員使用目前儲存在系統中的任何值。

SystemWake

SYSTEM_POWER_STATE類型值,指出裝置可以從中將喚醒訊號傳送至系統的最低系統電源狀態。 如果此值為 PowerSystemMaximum,架構會針對此成員使用目前儲存在系統中的任何值。 SYSTEM_POWER_STATE值定義於 wdm.h 中。

D1Latency

裝置需要從 D1 狀態傳回其 D0 狀態的大約時間,以 100 奈秒為單位。 如果此值為 -1,架構會針對這個成員使用目前儲存在系統中的任何值。

D2Latency

裝置需要從 D2 狀態返回其 D0 狀態的大約時間,以 100 奈秒為單位。 如果此值為 -1,架構會針對這個成員使用目前儲存在系統中的任何值。

D3Latency

裝置需要從 D3 狀態返回其 D0 狀態的大約時間,以 100 奈秒為單位。 如果此值為 -1,架構會針對這個成員使用目前儲存在系統中的任何值。

IdealDxStateForSx

DEVICE_POWER_STATE類型值,指出當系統進入任何系統睡眠狀態且裝置未啟用喚醒系統時,裝置應該進入的睡眠狀態。 如果此值為零,架構會使用 PowerDeviceD3。 此值不能是 PowerDeviceD0

如果驅動程式指定 IdealDxStateForSx 值,代表比裝置的 DeviceState 陣列中所指定的裝置堆疊更高電源的裝置睡眠狀態,架構會使用數位中的較低電源狀態。 例如,如果驅動程式指定 D1 的 IdealDxStateForSx 值,而裝置的 DeviceState 陣列指定 D2,架構就會使用 D2。

備註

WDF_DEVICE_POWER_CAPABILITIES 結構是做為 WdfDeviceSetPowerCapabilities 的輸入。

數個成員會使用 WDF_TRI_STATE 類型。 針對這些成員,適用下列規則:

  • WdfTrue 的值表示裝置支援功能,而 WdfFalse 的值表示它沒有。
  • 函式驅動程式和篩選驅動程式可以指定 WdfTrueWdfFalse,或 WdfUseDefault 的值,以指出架構應該使用堆疊中較低驅動程式所提供的值。 例如,如果總線驅動程式指定DeviceD1WdfTrue,而裝置的函式驅動程式指定 WdfUseDefault,架構就會使用 WdfTrue 作為功能。
  • 當總線驅動程式在建立子裝置的裝置對象之後呼叫 WdfDeviceSetPowerCapabilities 時,它應該指定 WdfTrueWdfFalse。 總線驅動程式可以指定子裝置的 WdfUseDefault ,但在此情況下 ,WdfUseDefaultWdfFalse 相同。
若要初始化WDF_DEVICE_POWER_CAPABILITIES結構,驅動程式應該呼叫 WDF_DEVICE_POWER_CAPABILITIES_INIT

規格需求

需求
最小 KMDF 版本 1.0
最低UMDF版本 2.0
標頭 wdfdevice.h (包含 Wdf.h)

另請參閱

WDF_DEVICE_PNP_CAPABILITIES