WDF_POWER_POLICY_S0_IDLE_CAPABILITIES列舉 (wdfdevice.h)
[適用於 KMDF 和 UMDF]
WDF_POWER_POLICY_S0_IDLE_CAPABILITIES列舉可識別裝置在閑置時進入低電源狀態時可支援的功能。
Syntax
typedef enum _WDF_POWER_POLICY_S0_IDLE_CAPABILITIES {
IdleCapsInvalid = 0,
IdleCannotWakeFromS0,
IdleCanWakeFromS0,
IdleUsbSelectiveSuspend
} WDF_POWER_POLICY_S0_IDLE_CAPABILITIES;
常數
IdleCapsInvalid 值: 0 僅供內部使用。 |
IdleCannotWakeFromS0 當系統處於運作 (S0) 狀態時,裝置無法從低電源狀態喚醒。 |
IdleCanWakeFromS0 當系統處於運作 (S0) 狀態時,裝置可以從低電源狀態喚醒本身。 |
IdleUsbSelectiveSuspend 裝置已連線到 USB 總線,並支援 USB 選擇性暫停。 如果您的 USB 連線裝置在電腦處於工作狀態時,同時支援閑置和喚醒本身,請使用此值。 如果您的USB裝置只支持閒置,請使用 IdleCannotWakeFromS0。 (USB 裝置的驅動程式不得指定 IdleCanWakeFromS0.) 請參閱下列範例一節中的程式碼範例。 針對 Windows XP,只有當裝置的 USB_CONFIGURATION_DESCRIPTOR 結構顯示裝置支援 遠端喚醒時,架構才支援 USB 選擇性暫停。 針對 Windows Vista 和更新版本的 Windows,架構支援 USB 選擇性暫停,無論裝置是否支援遠端喚醒。 |
備註
WDF_POWER_POLICY_S0_IDLE_CAPABILITIES列舉用於 WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS 結構。
範例
下列程式代碼範例示範如何啟用USB裝置的閑置支援。 在每個案例中,STATUS_POWER_STATE_INVALID傳回值表示總線驅動程式已回報裝置無法喚醒本身。
KMDF 範例
WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT(&idleSettings,
IdleUsbSelectSuspend);
status = WdfDeviceAssignS0IdleSettings(device,
&idleSettings);
if (status == STATUS_POWER_STATE_INVALID){
//
// The device probably does not support wake.
// It might support idle without wake.
//
idleSettings.IdleCaps = IdleCannotWakeFromS0;
status = WdfDeviceAssignS0IdleSettings(device,
&IdleSettings);
if (!NT_SUCCESS(status) {...}
}
else {...}
UMDF 範例
hr = pIWDFDevice2->AssignS0IdleSettings(IdleUsbSelectSuspend,
PowerDeviceD3,
IDLEWAKE_TIMEOUT_MSEC,
IdleAllowUserControl,
WdfTrue);
if (hr == HRESULT_FROM_NT(STATUS_POWER_STATE_INVALID)){
//
// The device probably does not support wake.
// It might support idle without wake.
//
hr = pIWDFDevice2->AssignS0IdleSettings(IdleCannotWakeFromS0,
PowerDeviceD3,
IDLEWAKE_TIMEOUT_MSEC,
IdleAllowUserControl,
WdfTrue);
if (!SUCCEEDED(hr)) {...}
}
else {...}
規格需求
需求 | 值 |
---|---|
最小 KMDF 版本 | 1.0 |
最低UMDF版本 | 1.11 |
標頭 | wdfdevice.h (包含 Wdf.h) |