IConsolePower::SetExecutionState 方法 (mmc.h)
SetExecutionState方法會設定目前線程的執行狀態。
語法
HRESULT SetExecutionState(
[in] DWORD dwAdd,
[in] DWORD dwRemove
);
參數
[in] dwAdd
要新增至嵌入式管理單元執行狀態的旗標。 這可以是下列 0 個或多個旗標的組合。
ES_DISPLAY_REQUIRED
顯示器 (監視器) 電源管理需求。 如果在 dwAdd中指定,嵌入式管理單元會禁止作業系統叫用顯示器的電源管理常式。
ES_SYSTEM_REQUIRED
系統電源管理需求。 如果在 dwAdd中指定,嵌入式管理單元會禁止作業系統叫用系統的電源管理常式。
[in] dwRemove
要從嵌入式管理單元執行狀態中移除的旗標。 這可以是上述旗標的 0 或多個組合。 指定一或多個旗標可讓嵌入式管理單元關閉先前呼叫 SetExecutionState所建立的電源管理需求。
傳回值
如果成功,則會 S_OK傳回值。 此方法會在不支援電源管理的系統上叫用時傳回 S_FALSE 。 其他傳回值表示錯誤碼。
備註
呼叫 IConsolePower::SetExecutionState ,而不是 SetThreadExecutionState。 嵌入式管理單元不得直接呼叫 SetThreadExecutionState 函式,如此一來,如果在相同執行緒上執行多個嵌入式管理單元,就會造成衝突。
嵌入式管理單元會定義其電源需求,並藉由呼叫 SetExecutionState將它們傳送至 MMC。 嵌入式管理單元呼叫 SetExecutionState之後,其執行狀態會維持有效狀態,直到嵌入式管理單元對 SetExecutionState進行另一次呼叫為止。 請注意,呼叫SetExecutionState之後,必須針對SetExecutionState的後續呼叫使用IConsolePower介面的相同實例。 如果嵌入式管理單元未使用相同的 IConsolePower實例,則 MMC 無法有效地呼叫 SetThreadExecutionState。 MMC 會維護陣列來追蹤每個嵌入式管理單元的執行狀態,並針對執行緒上執行的所有嵌入式管理單元呼叫 SetThreadExecutionState 。
範例
HRESULT hr;
// Specify that the display and system are required.
// pConsolePower was created previously by
// the CoCreateInstance method.
hr = pConsolePower->SetExecutionState(ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED,0);
switch (hr)
{
case S_OK:
OutputDebugString(_T("SetExecutionState: Succeeded\n"));
break;
case S_FALSE:
// The system does not support power management.
OutputDebugString(_T("SetExecutionState: Unsupported\n"));
break;
default:
// Unexpected error occurred.
OutputDebugString(_T("SetExecutionState: Failure\n"));
break;
}
需求
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | mmc.h |
程式庫 | Mmc.lib |
Dll | Mmcndmgr.dll |