1. 程式人生 > >Windows 64位驅動 關閉記憶體保護

Windows 64位驅動 關閉記憶體保護

包含標頭檔案#include <intrin.h>

關閉記憶體防寫的程式碼

KIRQL WPOFFx64()
{
  KIRQL irql=KeRaiseIrqlToDpcLevel();
  UINT64 cr0=__readcr0();
  cr0 &= 0xfffffffffffeffff;
  __writecr0(cr0);
  _disable();
  return irql;
}

開啟記憶體防寫的程式碼:

void WPONx64(KIRQL irql)
{
  UINT64 cr0=__readcr0();
  cr0 |= 0x10000;
  _enable();
  __writecr0(cr0);
  KeLowerIrql(irql);
}

使用例項:

irql = WPOFF();
RtlZeroMemory((PVOID)ulVirtualAddress, 0x1000);
WPON(irql);