diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c index d995cf7459c..2c651bb28fd 100644 --- a/dlls/ntdll/tests/om.c +++ b/dlls/ntdll/tests/om.c @@ -109,7 +109,7 @@ void test_namespace_pipe(void) status = pNtCreateNamedPipeFile(&pipe, GENERIC_READ|GENERIC_WRITE, &attr, &iosb, FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_CREATE, FILE_PIPE_FULL_DUPLEX, FALSE, FALSE, FALSE, 1, 256, 256, &timeout); - todo_wine ok(status == STATUS_INSTANCE_NOT_AVAILABLE, + ok(status == STATUS_INSTANCE_NOT_AVAILABLE, "NtCreateNamedPipeFile should have failed with STATUS_INSTANCE_NOT_AVAILABLE got(%08lx)\n", status); pRtlInitUnicodeString(&str, buffer2); diff --git a/server/named_pipe.c b/server/named_pipe.c index d4610521ca3..0d475e5b781 100644 --- a/server/named_pipe.c +++ b/server/named_pipe.c @@ -562,10 +562,9 @@ DECL_HANDLER(create_named_pipe) } else { - set_error( 0 ); /* clear the name collision */ if (pipe->maxinstances <= pipe->instances) { - set_error( STATUS_PIPE_BUSY ); + set_error( STATUS_INSTANCE_NOT_AVAILABLE ); release_object( pipe ); return; } @@ -577,6 +576,7 @@ DECL_HANDLER(create_named_pipe) release_object( pipe ); return; } + set_error( 0 ); /* clear the name collision */ } server = create_pipe_server( pipe, req->options );