共用方式為


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所建立的電源管理需求。

注意 電源管理需求必須先關閉,才能開啟。 嘗試在不先關閉電源管理需求的情況下,傳回錯誤 E_INVALIDARG
 

傳回值

如果成功,則會 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

另請參閱

IConsolePower::ResetIdleTimer

SetThreadExecutionState