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 的值表示它沒有。
- 函式驅動程式和篩選驅動程式可以指定 WdfTrue 或 WdfFalse,或 WdfUseDefault 的值,以指出架構應該使用堆疊中較低驅動程式所提供的值。 例如,如果總線驅動程式指定DeviceD1的 WdfTrue,而裝置的函式驅動程式指定 WdfUseDefault,架構就會使用 WdfTrue 作為功能。
- 當總線驅動程式在建立子裝置的裝置對象之後呼叫 WdfDeviceSetPowerCapabilities 時,它應該指定 WdfTrue 或 WdfFalse。 總線驅動程式可以指定子裝置的 WdfUseDefault ,但在此情況下 ,WdfUseDefault 與 WdfFalse 相同。
規格需求
需求 | 值 |
---|---|
最小 KMDF 版本 | 1.0 |
最低UMDF版本 | 2.0 |
標頭 | wdfdevice.h (包含 Wdf.h) |