0

我正在尝试通过输入获得当前的处理器速度/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 无效。

4

1 回答 1

0

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

于 2013-02-18T19:20:13.917 回答