
进程通信
文章平均质量分 80
qq_41489640
这个作者很懒,什么都没留下…
展开
-
C++windows消息通信
消息队列是存储在内核中的GUI线程才有消息队列一开始创建的都是非GUI线程,当调用到第一个GUI函数的时候,系统创建消息队列(ETHREAD->win32Thread可以找到消息队列),变成GUI线程,底层实现主要看ETHREAD->ServiceTable是指向SSDT还是Shadow SSDT,详细介绍WM_USER-1)为系统定义消息,用户自定义消息范围为0x0400(WM_USER)-0x7fffMSG结构//该消息所属的窗口句柄 UINT message;原创 2022-10-03 11:56:39 · 1034 阅读 · 0 评论 -
【c++windows共享内存(内存映射)】
共享内存是最快的IPC方式读写一轮需要两次拷贝:用户空间->共享内存,共享内存->用户空间共享内存一般通过memcpy()进行拷贝,因此共享内存数据并不会自动清空CreateFileMapping()第一个参数INVALID_HANDLE_VALUE时,实际是在内核内存创建一个磁盘无关的内存,不属于任何进程空间里的,不使用时需要释放(任何进程都可拿着句柄去释放?有待验证);原创 2022-09-25 17:39:53 · 1558 阅读 · 0 评论 -
C/C++windows管道
管道是进程通信的一种方式,其原理是内核里的一个缓冲区,不同进程该内存读写字节流数据创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。一个进程在向管道写入数据后,另一进程就可以从管道的另一端将其读取出来。**匿名管道**是只存在于内核的一块缓存区,做成文件读写方式,磁盘并无实体文件命名管道是一种特殊的系统(设备)文件wins下一般在/./pipe/pipename,而跨网络的时候需要将.替换成服务器的地址;在内核中是以环形队列形式存储的,且是FIFO的。原创 2022-05-07 15:59:07 · 1133 阅读 · 0 评论