blob: 31157c4d33f739406bd124ea324cf19381493a3b [file] [log] [blame]
Alexandre Julliard942e6d71998-12-30 12:08:20 +00001/*
2 * Win32 pipes
3 *
4 * Copyright 1998 Alexandre Julliard
5 */
6
7#include <assert.h>
Alexandre Julliard942e6d71998-12-30 12:08:20 +00008#include "winerror.h"
Alexandre Julliard96c08d81999-02-28 13:27:56 +00009#include "winbase.h"
Alexandre Julliard942e6d71998-12-30 12:08:20 +000010#include "server/request.h"
11#include "server.h"
12
Alexandre Julliard942e6d71998-12-30 12:08:20 +000013
14/***********************************************************************
15 * CreatePipe (KERNEL32.170)
16 */
Alexandre Julliarda3960291999-02-26 11:11:13 +000017BOOL WINAPI CreatePipe( PHANDLE hReadPipe, PHANDLE hWritePipe,
Alexandre Julliard942e6d71998-12-30 12:08:20 +000018 LPSECURITY_ATTRIBUTES sa, DWORD size )
19{
20 struct create_pipe_request req;
21 struct create_pipe_reply reply;
Alexandre Julliard942e6d71998-12-30 12:08:20 +000022 int len;
23
24 req.inherit = (sa && (sa->nLength>=sizeof(*sa)) && sa->bInheritHandle);
25 CLIENT_SendRequest( REQ_CREATE_PIPE, -1, 1, &req, sizeof(req) );
26 if (CLIENT_WaitReply( &len, NULL, 1, &reply, sizeof(reply) ) != ERROR_SUCCESS)
27 return FALSE;
Alexandre Julliard96c08d81999-02-28 13:27:56 +000028 *hReadPipe = reply.handle_read;
29 *hWritePipe = reply.handle_write;
Alexandre Julliard942e6d71998-12-30 12:08:20 +000030 return TRUE;
31}