我正在Windows 10(64位)中编写内核模式驱动程序,其主要目的是从DMA读取数据。我想知道是否可以将地址暴露给用户空间(当然不是物理地址),而不是将内核空间中的内存块复制到用户空间分配的缓冲区中,并避免进行内存复制操作。
也许可以这样做:
1. 分配一块连续的物理内存(并将物理地址映射到内核空间中的虚拟地址)。 2. 将内核空间中的虚拟地址映射到用户空间中的虚拟地址。
顺便提一下,由于只有一个内核空间,而系统中运行的进程数与用户空间数量相同(是吗?),因此我必须使用某种调用进程的句柄,以便在适当的进程中获取虚拟地址...
感谢您的时间!
也许可以这样做:
1. 分配一块连续的物理内存(并将物理地址映射到内核空间中的虚拟地址)。 2. 将内核空间中的虚拟地址映射到用户空间中的虚拟地址。
顺便提一下,由于只有一个内核空间,而系统中运行的进程数与用户空间数量相同(是吗?),因此我必须使用某种调用进程的句柄,以便在适当的进程中获取虚拟地址...
感谢您的时间!