blob: cca5a1d2b5d0a26245e6171e86ebd861d041f4c1 [file] [log] [blame]
Alexandre Julliard942e6d71998-12-30 12:08:20 +00001/*
2 * Win32 pipes
3 *
4 * Copyright 1998 Alexandre Julliard
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00005 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Alexandre Julliard942e6d71998-12-30 12:08:20 +000019 */
20
21#include <assert.h>
Alexandre Julliard942e6d71998-12-30 12:08:20 +000022#include "winerror.h"
Alexandre Julliard96c08d81999-02-28 13:27:56 +000023#include "winbase.h"
Alexandre Julliard37e95032001-07-19 00:39:09 +000024#include "wine/server.h"
Alexandre Julliard942e6d71998-12-30 12:08:20 +000025
Alexandre Julliard942e6d71998-12-30 12:08:20 +000026
27/***********************************************************************
Patrik Stridvalldae8de62001-06-13 20:13:18 +000028 * CreatePipe (KERNEL32.@)
Alexandre Julliard942e6d71998-12-30 12:08:20 +000029 */
Alexandre Julliarda3960291999-02-26 11:11:13 +000030BOOL WINAPI CreatePipe( PHANDLE hReadPipe, PHANDLE hWritePipe,
Alexandre Julliard942e6d71998-12-30 12:08:20 +000031 LPSECURITY_ATTRIBUTES sa, DWORD size )
32{
Alexandre Julliard9c2370b2000-08-30 00:00:48 +000033 BOOL ret;
Alexandre Julliard67a74992001-02-27 02:09:16 +000034 SERVER_START_REQ( create_pipe )
Alexandre Julliard9c2370b2000-08-30 00:00:48 +000035 {
Alexandre Julliard9c2370b2000-08-30 00:00:48 +000036 req->inherit = (sa && (sa->nLength>=sizeof(*sa)) && sa->bInheritHandle);
Alexandre Julliard9caa71e2001-11-30 18:46:42 +000037 if ((ret = !wine_server_call_err( req )))
Alexandre Julliard9c2370b2000-08-30 00:00:48 +000038 {
Alexandre Julliard9caa71e2001-11-30 18:46:42 +000039 *hReadPipe = reply->handle_read;
40 *hWritePipe = reply->handle_write;
Alexandre Julliard9c2370b2000-08-30 00:00:48 +000041 }
42 }
43 SERVER_END_REQ;
44 return ret;
Alexandre Julliard942e6d71998-12-30 12:08:20 +000045}