Lut*_*ław 5 c c++ cpu masm cpu-registers
我需要控制 C-State 配置。具体来说,我可能想执行以下 asm 代码:
__asm
{
rdmsr
and eax, 0x00
or eax, 0x01
wrmsr
}
Run Code Online (Sandbox Code Playgroud)
目前,我在rdmsr网上得到了这个异常:
MessWithCStates.exe 中 0x00e3139e 处的未处理异常:0xC0000096:特权指令。
我如何(永久)提升我的应用程序的权限,以便它可以执行上面的代码?我使用 VS 2010。
注意:无需编写内核模式驱动程序也是可能的。请参阅R/W 一切。
小智 4
您可能正在 Ring 3 内的 x86 处理器上运行此代码。您没有执行此命令的权限。时期。这是硬件限制。执行该指令的唯一方法是进入 Ring 0,并且您的操作系统很可能不允许您这样做。您将需要编写一个内核模式驱动程序来完成此任务。
编辑: http: //faydoc.tripod.com/cpu/rdmsr.htm有更多信息。