Manage system at power state transition: force it to the Sleep state and hook at hardware abstraction level “at the last moment”!
The Client is working with Apriorit team on the big OS virtualization project to allow several operating systems simultaneously run on a single hardware platform with a run-time switching between them. You can learn details on the early stages of the project from our Case Study: Virtualization for Mobile Devices (PDF, 390 KB)
This time, it was the implementation of Android x86 – Windows 7 x86 run-time switching. The strategy, which the team chose for this task, was to force currently inactive Windows OS to the Sleep state and hook it then – task requirements would be fulfilled only with the hardware abstraction level hook. This approach supposed thorough research of the power management methods in Windows 7.
Apriorit Research department was to reverse halmacpi.dll file to recover PM transition stages and find a low-level function to hook.
For more details:Reverse Engineering Case: Stages of Power Management Transition in Windows 7
(PDF, 570 KB)