KIRQL WPOFF()
{
KIRQL OldIrql = KeRaiseIrqlToDpcLevel();
//ULONG_PTR 这个类型在x86上是32位 x64就是64位
ULONG_PTR cr0 = __readcr0();
#ifdef _X86_
cr0 &= 0xfffeffff;
#else
cr0 &= 0xfffffffffffeffff;
#endif
_disable(); //关闭中断
__writecr0(cr0); //关闭写保护位
return OldIrql;
}
VOID WPON(KIRQL irql)
{
ULONG_PTR cr0 = __readcr0();
cr0 |= 0x10000;
__writecr0(cr0); //恢复写保护位
_enable(); //恢复中断
KeLowerIrql(irql);
}
关闭和开启写保护
最新推荐文章于 2022-11-07 15:51:00 发布