首页 > 解决方案 > 可以在 Windows Hyper-V 中调出来宾操作系统中的非分页内存吗?

问题描述

假设我正在编写一个内核驱动程序,它在 Windows 的 Hyper-V 子分区中运行,有一些来自非分页池的缓冲区。这个缓冲区是否保证被锁定在主机的物理内存中?

背景是我想启动涉及此缓冲区的 DMA,并且我不希望主机将其分页。

标签: windowsvirtualizationhyper-v

解决方案


回答我自己的问题。根据我从 Hyper-V 团队中的某个人那里得到的答案,他说:

一般来说,从客户的角度来看,未分页的内存可以由主机分页。但是,如果客户可以访问物理设备,主机将不会对客户内存进行分页,以避免在 IOMMU 上导致 DMA 故障。来宾是 Windows 还是 Linux(或其他)不是此行为的一个因素。


推荐阅读