gpt4 book ai didi

通过 memcpy 将数据从用户应用程序复制到内核驱动程序

转载 作者:行者123 更新时间:2023-11-30 16:20:59 24 4
gpt4 key购买 nike

好吧,我会让事情变得简单,我如何使用共享内存从用户模式应用程序向内核驱动程序发送和接收数据。用一个实际的互斥体来指示我的请求是否完成。我如何调用读取内存函数而不将其添加到 Major_irp 函数,因为我不想添加任何 IOCTL 代码

最佳答案

以下内容假设 *nix 风格的内核,但相同的概念也适用于 Windows。不过,其他操作系统内核可能采用不同的概念:

要么在代码中实现 mmap 系统调用,将内核端分配的内存映射到用户空间。或者只是实现readwrite系统调用直接从用户空间内存读取/写入。

特别针对 Linux:如果您想要异步访问用户空间内存,请使用带有标志 SPLICE_F_GIFTvmsplice。像互斥体或信号量这样的同步原语通常不会跨越用户空间/内核空间边界,如果你想异步操作,你必须实现轮询文件操作,以向用户空间发出信号,当"file"操作完成。

关于通过 memcpy 将数据从用户应用程序复制到内核驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55054190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com