Description
Our product (RDBMS Linter ) does not work on ReactOS (tested on r66828). We found the cause of the problem: ReactOS incorrectly reads data from the mailslot in synchronous mode.
Steps to reproduce:
1. Create a mailslot with parameter lReadTimeout = MAILSLOT_WAIT_FOREVER:
hMailslotClient=CreateMailslot(LMS, 0L, MAILSLOT_WAIT_FOREVER,
|
(LPSECURITY_ATTRIBUTES) NULL);
|
2. Attempt reading from an empty (without messages) slot:
ReadFile(hMailslotClient, lpszBuffer, LENMSG, &cbRead, NULL);
|
3. Function ReadFile() returns an error (with code ERROR_SEM_TIMEOUT) immediately, but it must wait message "forever".
Full example available here:
https://github.com/pechenkin/mailslotBug/blob/master/mailslotBug.c