Windows – Win32命名管道和邮件大小限制 – 旧的64K限制仍然适
Win32曾经有消息模式管道的消息大小限制为64K,如KB文章
Q119218 PRB: Named Pipe Write() Limited to 64K的残余部分所见.“适用于”部分仅列出“Microsoft Win32应用程序编程接口”,文章相当陈旧;没有迹象表明它是否也适用于Windows 7等合理的当前版本.是否有关于该问题的可靠,最新信息?
当前的在线文档仅包含未指定限制的模糊提示,例如CreateNamedPipe()功能文档中的这个美丽措辞:
没有迹象表明“系统最大值”可能是什么,或者如何查询其值. TransactNamedPipe()的文档中再次出现64K限制:
但是,极限可能只适用于TransactNamedPipe()意义上的命名管道“事务”;也就是说,写入后跟读取,全部包含在单个系统调用和/或网络事务中.该限制可能与SMB有关,因此不适用于本地管道.这有什么硬信息吗? 消息模式管道非常适合当前项目,其中服务器进程获取请求数据包并提供单个响应数据包,调度程序是Apache中托管的简单多线程存根(类似于mod_fcgid).字节模式管道需要一些额外的框架,这使得消息模式管道看起来更简单,因此更可取.但是,不能将请求和响应大小限制为64K;因此这个问题.
不,不再有任何此类限制.
documentation for WriteFile说:
由此我们可以得出结论,该限制不适用于当前版本的Windows,并且可能仅在处理网络管道时应用于XP. 我们还可以观察到,如果Q119218适用于当前版本的Windows,则它不会被归档. 实验上,我可以确认在Windows 7 SP1 x64上,本地消息模式管道可以处理大小超过1 GB的消息. (我开始在1650MB左右的某个地方获得“系统资源不足”消息.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – 如何在Visual Studio中使用OpenSSL
- 在Windows下,什么是流程“工作集”?
- windows-7 – 是否有cmd / certutils将证书从一个商店复制到
- Window丢失api-ms-win-crt-runtime-l1-1-0.dll
- windows-server-2008 – 你能下载Hyper-V吗?
- Windows Azure Powershell将文件复制到VM
- Windows – 远程桌面客户端找不到远程计算机
- 使用哪种媒体来安装Windows 7
- .net – 如何使用Team Build 2010部署Windows服务项目
- group-policy – 如何在Windows 2012中更改默认区域/区域性