weiden(a)svn.reactos.com wrote:
fix some flags calculations and access rights in
CreateNamedPipe and CreatePipe
Modified: trunk/reactos/lib/kernel32/file/pipe.c
------------------------------------------------------------------------
*Modified: trunk/reactos/lib/kernel32/file/pipe.c*
--- trunk/reactos/lib/kernel32/file/pipe.c 2005-10-30 13:55:28 UTC (rev 18882)
+++ trunk/reactos/lib/kernel32/file/pipe.c 2005-10-30 14:51:12 UTC (rev 18883)
@@ -86,10 +89,10 @@
}
Status = NtOpenFile(&WritePipeHandle,
- FILE_GENERIC_WRITE,
+ FILE_GENERIC_WRITE | SYNCHRONIZE,
&ObjectAttributes,
&StatusBlock,
- 0,
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE);
if (!NT_SUCCESS(Status))
{
This change does break the using of pipes which are created by
CreatePipe. Usually it isn't necessary to open the end of the pipe in
share mode. Each opening request generates a new instance of a pipe.
FILE_SHARE_READ doesn't make sense, because this pipe-end is opened for
write access. If FILE_SHARE_READ|FILE_SHARE_WRITE is used, npfs.sys
interprets it as a special value and doesn't connect the pipe. This
breaks compiling ros on ros.
- Hartmut