--- trunk/reactos/lib/kernel32/file/npipe.c 2005-11-09 04:32:44 UTC (rev 19088)
+++ trunk/reactos/lib/kernel32/file/npipe.c 2005-11-09 04:53:32 UTC (rev 19089)
@@ -207,6 +207,13 @@
nOutBufferSize,
&DefaultTimeOut);
+ /* Normalize special error codes */
+ if ((Status == STATUS_INVALID_DEVICE_REQUEST) ||
+ (Status == STATUS_NOT_SUPPORTED))
+ {
+ Status = STATUS_OBJECT_NAME_INVALID;
+ }
+
/* Free the name */
RtlFreeUnicodeString(&NamedPipeName);
--- trunk/reactos/lib/kernel32/file/pipe.c 2005-11-09 04:32:44 UTC (rev 19088)
+++ trunk/reactos/lib/kernel32/file/pipe.c 2005-11-09 04:53:32 UTC (rev 19089)
@@ -54,7 +54,7 @@
/* Create the pipe name */
swprintf(Buffer,
- L"\\\\.\\PIPE\\Win32Pipes.%08x.%08x",
+ L"\\Device\\NamedPipe\\Win32Pipes.%08x.%08x",
NtCurrentTeb()->Cid.UniqueProcess,
PipeId);
RtlInitUnicodeString(&PipeName, Buffer);
@@ -81,15 +81,15 @@
/* Create the named pipe */
Status = NtCreateNamedPipeFile(&ReadPipeHandle,
- FILE_GENERIC_READ |FILE_WRITE_ATTRIBUTES | SYNCHRONIZE,
+ GENERIC_READ |FILE_WRITE_ATTRIBUTES | SYNCHRONIZE,
&ObjectAttributes,
&StatusBlock,
- FILE_SHARE_WRITE,
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
FILE_CREATE,
FILE_SYNCHRONOUS_IO_NONALERT,
FILE_PIPE_BYTE_STREAM_TYPE,
FILE_PIPE_BYTE_STREAM_MODE,
- FILE_PIPE_BYTE_STREAM_MODE,
+ FILE_PIPE_QUEUE_OPERATION,
1,
nSize,
nSize,
@@ -97,6 +97,7 @@
if (!NT_SUCCESS(Status))
{
/* Convert error and fail */
+ DPRINT1("Status: %lx\n", Status);
SetLastErrorByStatus(Status);
return FALSE;
}
@@ -111,6 +112,7 @@
if (!NT_SUCCESS(Status))
{
/* Convert error and fail */
+ DPRINT1("Status: %lx\n", Status);
NtClose(ReadPipeHandle);
SetLastErrorByStatus(Status);
return FALSE;