Compartir a través de


Método IConsolePower::SetExecutionState (mmc.h)

El método SetExecutionState establece el estado de ejecución del subproceso actual.

Sintaxis

HRESULT SetExecutionState(
  [in] DWORD dwAdd,
  [in] DWORD dwRemove
);

Parámetros

[in] dwAdd

Marcas que se van a agregar al estado de ejecución del complemento. Puede ser una combinación de 0 o más de las marcas siguientes.

ES_DISPLAY_REQUIRED

Requisito de administración de energía de pantalla (monitor). Si se especifica en dwAdd, el complemento prohíbe al sistema operativo invocar la rutina de administración de energía para la pantalla.

ES_SYSTEM_REQUIRED

Requisito de administración de energía del sistema. Si se especifica en dwAdd, el complemento prohíbe que el sistema operativo invoque la rutina de administración de energía para el sistema.

[in] dwRemove

Marcas que se van a quitar del estado de ejecución del complemento. Puede ser una combinación de 0 o más de las marcas anteriores. Especificar una o varias marcas permite que un complemento desactive un requisito de administración de energía establecido por una llamada anterior a SetExecutionState.

Nota Se debe desactivar un requisito de administración de energía antes de que se pueda activar. Un intento de activar un requisito de administración de energía sin apagarlo primero devuelve un error E_INVALIDARG.
 

Valor devuelto

Si se ejecuta correctamente, el valor devuelto se S_OK. Este método devolverá S_FALSE cuando se invoque en un sistema que no admita la administración de energía. Otros valores devueltos indican un código de error.

Comentarios

Llame a IConsolePower::SetExecutionState en lugar de SetThreadExecutionState. Los complementos no deben llamar directamente a la función SetThreadExecutionState , lo que provoca conflictos si se ejecutan varios complementos en el mismo subproceso.

Un complemento define sus requisitos de energía y los envía a MMC mediante una llamada a SetExecutionState. Después de que el complemento llame a SetExecutionState, su estado de ejecución permanece en vigor hasta que el complemento realiza otra llamada a SetExecutionState. Tenga en cuenta que, después de llamar a SetExecutionState , se debe usar la misma instancia de la interfaz IConsolePower para las llamadas posteriores a SetExecutionState. Si un complemento no usa la misma instancia de IConsolePower, MMC no puede llamar eficazmente a SetThreadExecutionState. MMC mantiene una matriz para realizar un seguimiento del estado de ejecución de cada complemento y llama a SetThreadExecutionState para todos los complementos que se ejecutan en el subproceso.

Ejemplos

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;
}

Requisitos

   
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado mmc.h
Library Mmc.lib
Archivo DLL Mmcndmgr.dll

Consulte también

IConsolePower::ResetIdleTimer

SetThreadExecutionState