使用CallNtPowerInformation()STATUS_ACCESS_DENIED

时间:2013-02-18 10:21:01

标签: windows-8

我正在尝试使用CallNtPowerInformation()输入通过ProcessorInformation获取当前的处理器速度/限制:

SYSTEM_INFO systemInfo;
GetSystemInfo( &systemInfo );

numProcessors = (unsigned char)systemInfo.dwNumberOfProcessors;
powerInformations = new PROCESSOR_POWER_INFORMATION[numProcessors];
long status = CallNtPowerInformation( ProcessorInformation, NULL, 0, powerInformations, numProcessors*sizeof(PROCESSOR_POWER_INFORMATION) );

不幸的是,status总是等于STATUS_ACCESS_DENIED。我找不到任何关于这个原因的文档,有人能指出我为什么无法获得当前处理器信息的原因吗?

这是在Windows 8上,在Surface Pro上运行(使用桌面API),我尝试使用提升的权限启动VS2012,无效。

1 个答案:

答案 0 :(得分:0)

事实证明,如果我在控制台应用程序中运行此代码,它可以工作,但如果我在Metro应用程序中运行它,它就会失败。我会问一个关于如何在windows store app中执行这样的代码的新问题。