https://bugs.winehq.org/show_bug.cgi?id=37637
--- Comment #3 from den123 den.aria@gmail.com --- No, i don't think that. May be problem in PIPE_WAIT flag. I use synchronize Pipe mode and i must get result true when all data is read, but i get result True of reading operation before all data is read, like in PIPE_NOWAIT mode.
In windows is work ok.
P.S PIPE_WAIT 0x00000000 Blocking mode is enabled. This mode is the default if no wait-mode flag is specified. When a blocking mode pipe handle is specified in the ReadFile, WriteFile, or ConnectNamedPipe function, operations are not finished until there is data to read, all data is written, or a client is connected. Use of this mode can mean waiting indefinitely in some situations for a client process to perform an action.
Client to PIPE code hPipe := CreateFile(PChar(Named), GENERIC_WRITE or GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0); if not WriteFile(hPipe, msData.Memory^, cBuffer, cBytesWritten, nil) then Exit;