怎么获取DirectoryTableBase (CR3)

windows怎么获取DirectoryTableBase (CR3)
除了从eprocess中获取以外。。还有什么获取思路?
谢谢大神们

可以使用内联汇编
http://www.cppblog.com/sohd/articles/94762.html

假设要读取PID为1000的进程从0x400000开始的100个字节,只需要按下面的步骤实现:
1、获取PID=1000的进程的_EPROCESS,读取_EPROCESS::Pcb::DirectoryTableBase[0]
2、将页目录的值mov到cr3中。
3、直接将0x400000的地址memcpy到内核空间地址中
4、恢复cr3的值。**

没有有大神指点下啊。。。