C++ powercfg根据32位和64位版本返回不同的结果

C++ powercfg根据32位和64位版本返回不同的结果,c++,windows,winapi,wow64,powercfg,C++,Windows,Winapi,Wow64,Powercfg,我试图从运行在64位版本Windows 8.1上的32位应用程序中调用该工具,使用以下命令作为lpCommandLine参数: "powercfg -waketimers" 它工作得很好,只是我偶然发现它返回的报告与从命令行运行相同的报告不同 下面是我在32位进程中得到的: Timer set by [PROCESS] Legacy Kernel Caller expires at 4:00:02 AM on 1/20/2016. Reason: Timer set by [PROCESS

我试图从运行在64位版本Windows 8.1上的32位应用程序中调用该工具,使用以下命令作为
lpCommandLine
参数:

"powercfg -waketimers"
它工作得很好,只是我偶然发现它返回的报告与从
命令行运行相同的报告不同

下面是我在32位进程中得到的:

Timer set by [PROCESS] Legacy Kernel Caller expires at 4:00:02 AM on 1/20/2016.
Reason: 

Timer set by [PROCESS] Legacy Kernel Caller expires at 3:59:00 AM on 1/20/2016.
Reason:
下面是我在
命令行
窗口中看到的内容:

Timer set by [SERVICE] \Device\HarddiskVolume4\Windows\System32\svchost.exe (SystemEventsBroker) expires at 4:00:02 AM on 1/20/2016.
Reason: Windows will execute 'NT TASK\Microsoft\Windows\TaskScheduler\Regular Maintenance' scheduled task that requested waking the computer.

Timer set by [SERVICE] \Device\HarddiskVolume4\Program Files (x86)\Common Files\Acronis\Schedule2\schedul2.exe (AcrSch2Svc) expires at 3:59:00 AM on 1/20/2016.
所以我很好奇,这个工具的32位和64位版本应该返回不同的结果吗?因为我可以纠正这一问题并从32位进程获取完整报告(上面的第二个版本)的唯一方法是检测它作为WOW64运行,然后使用以下路径进行强制64位重定向:

"C:\\Windows\\SysWow64\\powercfg.exe -waketimers"