Поделиться через


Метод 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 напрямую, что приводит к конфликтам, если в одном потоке выполняется несколько оснасток.

Оснастка определяет требования к энергопотреблению и отправляет их в MMC путем вызова SetExecutionState. После того, как оснастка вызывает 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
Header mmc.h
Библиотека Mmc.lib
DLL Mmcndmgr.dll

См. также раздел

IConsolePower::ResetIdleTimer

SetThreadExecutionState