我已经添加了一些编译干净的代码并且刚刚收到这个 Windows 错误:
---------------------------
(MonTel Administrator) 2.12.7: MtAdmin.exe - Application Error
---------------------------
The exception Privileged instruction.
(0xc0000096) occurred in the application at location 0x00486752.
我即将开始寻找错误,我希望我所做的事情很愚蠢,而恰好会产生此消息。代码编译干净,没有错误或警告。 EXE 文件的大小已增长到 1,454,132 字节,并包含指向 ODCS.lib
的链接,但它是 Win32 API 的纯 C 语言,并带有 DEBUG(在 Windows 2000 上的 P4 上运行)。
最佳答案
要回答这个问题,特权指令是处理器操作码(汇编指令),只能在“主管”(或 Ring-0)模式下执行。 这些类型的指令往往用于从 Windows 内核访问 I/O 设备和 protected 数据结构。
常规程序在“用户模式”(Ring-3)下执行,不允许直接访问 I/O 设备等...
正如其他人提到的,原因可能是堆栈损坏或函数指针调用困惑。
关于c - 什么是特权指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/89607/