作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我需要控制 C 状态配置。具体来说,我可能想执行以下 asm 代码:
__asm
{
rdmsr
and eax, 0x00
or eax, 0x01
wrmsr
}
目前,我在 rdmsr
行遇到了这个异常:
Unhandled exception at 0x00e3139e in MessWithCStates.exe: 0xC0000096: Privileged instruction.
我如何(永久地)提升我的应用程序的权限,以便它可以执行上面的代码?我使用 VS 2010。
注意:无需编写内核模式驱动程序即可。请参阅
R/W 一切。
最佳答案
很可能,您正在 Ring 3 内的 x86 处理器上运行此代码。您没有执行此命令的权限。时期。这是硬件限制。执行该指令的唯一方法是进入 Ring 0,而您的操作系统很可能不允许您这样做。您将需要编写内核模式驱动程序来完成此操作。
关于c++ - 从 C/C++ 代码执行 RDMSR 和 WRMSR 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875778/
我需要控制 C 状态配置。具体来说,我可能想执行以下 asm 代码: __asm { rdmsr and eax, 0x00 or eax, 0x01 wrmsr
我是一名优秀的程序员,十分优秀!