我知道如何将虚拟地址转换为物理地址,但是是否可以使用一个所需的 VA,并且如果您检测到它不存在 PTE(或 PDE、PTPE 或 PML4E)来实际将其映射到正确的物理地址?
让我们以 x86 非 PAE Windows 系统上的 VA 0x30000 为例。把它分成我们有的 3 组
0000000000 | 0000110000 | 000000000000
页目录索引 = 0x0
页表索引 = 0x30
物理偏移 = 0x0
我们从 CR3 得到 PD 的物理地址,发现它的 PDE 的 Present 位被清除了。是否可以在物理内存中(在 pd[pdi] 处)写入一个有效的 PDE(实质上是设置 Present 位),然后遍历所有表(将条目标记为存在),最后让 VA 对某个时间有效PA 以便将来翻译它的尝试会成功?甚至可以直接从内核模块写入物理地址吗?