一个Windows驱动程序可以访问进程的页表吗?

Windows中,内核驱动程序可以执行诸如locking内存来备份虚拟地址范围( MMProbeandLockPages )。 但我找不到一种方法来实际validation虚拟地址是否对特定进程有效。 换句话说,内核驱动程序是否有任何方法检查给定虚拟页是否包含在给定进程的页表中?

如果驱动程序没有在进程的上下文中运行,则必须先调用KeStackAttachProcess。

然后,您可以在try / except块内执行ProbeForRead或ProbForWrite。 例如,请参阅处理WinDDK示例的src \ general \ ioctl \ wdm \ sys \ sioctl.c中的IOCTL_SIOCTL_METHOD_NEITHER。