Win32 uses a limit on the message size of 64K for message channels, as evidenced by the remainder of KB article Q119218 PRB: Named Pipe Write () Limited to 64K . The "applies to" section only lists the "Microsoft Win32 Programming Interface", and the article is quite old; there is no indication whether this also applies to reasonably current versions, such as Windows 7. Is there any reliable current information about the problem?
The current online documentation contains only vague clues within unspecified limits, for example, this beautiful wording in the documentation for CreateNamedPipe () :
Input and output buffer sizes are recommended. The actual buffer size reserved for each end of the named pipe is either the system default value, the minimum or maximum value of the system, or the specified size, rounded to the next allocation boundary.
There is no indication that there may be a "maximum system level", or how to request its value.
The following appears in the documentation for TransactNamedPipe () :
The maximum guaranteed transaction size with a named pipe is 64 kilobytes. In some limited cases, transactions of more than 64 kilobytes are possible, depending on the OS versions involved in the transaction and dynamic network conditions. However, there is no guarantee that transactions exceeding 64 kilobytes will be successful.
, TransactNamedPipe(); , , / . SMB , , . - ?
, , , Apache ( mod_fcgid). - , , , . 64K; , .