我正在 Windows 10(64 位)中编写内核模式驱动程序,其主要目的是从 DMA 读取,我想知道是否不是将内存块从内核空间复制到用户空间中分配的缓冲区,我可以以某种方式将地址暴露给用户空间(当然不是物理地址),并节省内存复制操作。
也许是这样的:
分配一块连续的物理内存(并将物理地址映射到内核空间中的虚拟地址)。
将内核空间中的虚拟地址映射到用户空间中的虚拟地址。
顺便说一句,由于只有一个内核空间,并且用户空间与系统中运行的进程一样多(对吗?),我必须使用某种句柄来调用进程,以便获得相应进程中的虚拟地址...
谢谢你的时间!