PowerMessageReflector.dll

I had a support question recently that concerned the PowerMessageReflector.dll and I thought it might be a good idea to outline what this is and what it does.

When Windows puts the PC’s monitor into standby it first sends a message to the top most window indicating that the monitor is about to be put into Standby. Windows sends this message (called SC_MONITORPOWER) in order to give this foreground window a chance to prevent Windows putting the monitor into standby. This is important because when some application are running, such as a Power Point slide show, you do not want the monitor to power down.

This message is also useful for eiPower because it allows the agent to know when windows is putting the monitor into standby. Unfortunately because Windows only send this message to the foreground window the eiPower agent does not normally receive this message. To overcome this problem the eiPower agent hooks the the PowerMessageReflector.dll into all processes in order to monitor for and relay any SC_MONITORPOWER messages received. This DLL is hooked using the standard Windows mechanism and since the DLL does so little does not have any impact on the system performance.

Without this message hook DLL the eiPower agent is not able to reliably get the state of the monitor. However in versions of the eiPower post Auckland the eiPower agent now polls the monitor every 60 seconds and can generally correctly determine the monitor’s power state. Hence the role this hook DLL is not as important as it once was.

Having said that, I recently received a support call regarding a problem with the PowerMessageReflector.dll. The problem was due to a complicated environment issue and after considering the problem for a while I decided that the easiest fix would be to allow them to disable the hooking of the PowerMessageReflector.dll.

This change is available in releases post Tokyo and all that is needed is to delete the PowerMessageReflector2.dll from the agent installation directory. Note : Do not try this on versions before Tokyo – you will probably crash the eiPower agent.