ReactOS 0.4.16-dev-2522-g97cc325
Pipes.c File Reference
#include "precomp.h"
Include dependency graph for Pipes.c:

Go to the source code of this file.

Macros

#define MINBUFFERSIZE   1
 
#define MAXBUFFERSIZE   255
 
#define TEST_MESSAGE   "Test"
 
#define TEST_MESSAGE_SIZE   (sizeof(TEST_MESSAGE) - sizeof(ANSI_NULL))
 

Functions

DWORD WINAPI PipeWriter (_In_ PVOID Param)
 
DWORD WINAPI PipeReader (_In_ PVOID Param)
 
VOID StartTestCORE17376 (_In_ DWORD adReadBufferSize)
 
 START_TEST (Pipes)
 

Variables

static PCWSTR g_PipeName = L"\\\\.\\pipe\\rostest_pipe"
 
static DWORD g_dwReadBufferSize
 

Macro Definition Documentation

◆ MAXBUFFERSIZE

#define MAXBUFFERSIZE   255

Definition at line 14 of file Pipes.c.

◆ MINBUFFERSIZE

#define MINBUFFERSIZE   1

Definition at line 13 of file Pipes.c.

◆ TEST_MESSAGE

#define TEST_MESSAGE   "Test"

Definition at line 15 of file Pipes.c.

◆ TEST_MESSAGE_SIZE

#define TEST_MESSAGE_SIZE   (sizeof(TEST_MESSAGE) - sizeof(ANSI_NULL))

Definition at line 16 of file Pipes.c.

Function Documentation

◆ PipeReader()

DWORD WINAPI PipeReader ( _In_ PVOID  Param)

Definition at line 32 of file Pipes.c.

33{
34 HANDLE hPipe = (HANDLE)Param;
35 CHAR outMsg[MAXBUFFERSIZE];
36
37 DWORD cbRead = 0;
38 BOOL Success = ReadFile(hPipe, outMsg, g_dwReadBufferSize, &cbRead, NULL);
39
41 ok(!Success, "ReadFile() succeeded unexpectedly\n");
42 else
43 ok(Success, "ReadFile() failed, last error = 0x%lx\n", GetLastError());
44
45 ok(cbRead != 0, "cbRead == 0\n");
46
49
50 return 0;
51}
#define MINBUFFERSIZE
Definition: Pipes.c:13
static DWORD g_dwReadBufferSize
Definition: Pipes.c:18
#define MAXBUFFERSIZE
Definition: Pipes.c:14
#define ok_hex(expression, result)
Definition: atltest.h:94
#define ok(value,...)
Definition: atltest.h:57
#define ERROR_MORE_DATA
Definition: dderror.h:13
#define NULL
Definition: types.h:112
#define ReadFile(a, b, c, d, e)
Definition: compat.h:742
@ Success
Definition: eventcreate.c:712
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
PVOID HANDLE
Definition: typedefs.h:73
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
char CHAR
Definition: xmlstorage.h:175

Referenced by StartTestCORE17376().

◆ PipeWriter()

DWORD WINAPI PipeWriter ( _In_ PVOID  Param)

Definition at line 20 of file Pipes.c.

21{
22 HANDLE hPipe = (HANDLE)Param;
23 DWORD cbWritten = 0;
25
26 ok(Success, "WriteFile() failed, last error = 0x%lx\n", GetLastError());
27 ok_int(cbWritten, TEST_MESSAGE_SIZE);
28
29 return 0;
30}
#define TEST_MESSAGE_SIZE
Definition: Pipes.c:16
#define ok_int(expression, result)
Definition: atltest.h:134
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Definition: rw.c:24

Referenced by StartTestCORE17376().

◆ START_TEST()

START_TEST ( Pipes  )

Definition at line 110 of file Pipes.c.

111{
114}
VOID StartTestCORE17376(_In_ DWORD adReadBufferSize)
Definition: Pipes.c:53

◆ StartTestCORE17376()

VOID StartTestCORE17376 ( _In_ DWORD  adReadBufferSize)

Definition at line 53 of file Pipes.c.

54{
55 HANDLE hPipeReader, hPipeWriter, hThreadReader, hThreadWriter;
56 trace("adReadBufferSize = %lu - START\n", adReadBufferSize);
57
58 g_dwReadBufferSize = adReadBufferSize;
59
60 hPipeReader = CreateNamedPipeW(
64 1,
67 0,
68 NULL);
69 ok(hPipeReader != INVALID_HANDLE_VALUE, "CreateNamedPipeW failed\n");
70
71 if (hPipeReader == INVALID_HANDLE_VALUE)
72 return;
73
74 hThreadReader = CreateThread(NULL, 0, PipeReader, hPipeReader, 0, NULL);
75 ok(hThreadReader != INVALID_HANDLE_VALUE, "CreateThread failed\n");
76
77 hPipeWriter = CreateFileW(
81 NULL,
84 NULL);
85 ok(hPipeWriter != INVALID_HANDLE_VALUE, "CreateFileW failed\n");
86
87 if (hPipeWriter != INVALID_HANDLE_VALUE)
88 {
89 hThreadWriter = CreateThread(NULL, 0, PipeWriter, hPipeWriter, 0, NULL);
90 ok(hThreadWriter != INVALID_HANDLE_VALUE, "CreateThread failed\n");
91
92 if (hThreadWriter != INVALID_HANDLE_VALUE)
93 {
94 WaitForSingleObject(hThreadWriter, INFINITE);
95 CloseHandle(hThreadWriter);
96 }
97 CloseHandle(hPipeWriter);
98 }
99
100 if (hThreadReader != INVALID_HANDLE_VALUE)
101 {
102 WaitForSingleObject(hThreadReader, INFINITE);
103 CloseHandle(hThreadReader);
104 }
105 CloseHandle(hPipeReader);
106
107 trace("adReadBufferSize = %lu - COMPLETED\n", adReadBufferSize);
108}
DWORD WINAPI PipeWriter(_In_ PVOID Param)
Definition: Pipes.c:20
static PCWSTR g_PipeName
Definition: Pipes.c:11
DWORD WINAPI PipeReader(_In_ PVOID Param)
Definition: Pipes.c:32
#define trace
Definition: atltest.h:70
#define CloseHandle
Definition: compat.h:739
#define OPEN_EXISTING
Definition: compat.h:775
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define GENERIC_READ
Definition: compat.h:135
#define CreateFileW
Definition: compat.h:741
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:137
#define FILE_SHARE_READ
Definition: compat.h:136
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
Definition: thread.c:137
#define INFINITE
Definition: serial.h:102
HANDLE WINAPI CreateNamedPipeW(LPCWSTR lpName, DWORD dwOpenMode, DWORD dwPipeMode, DWORD nMaxInstances, DWORD nOutBufferSize, DWORD nInBufferSize, DWORD nDefaultTimeOut, LPSECURITY_ATTRIBUTES lpSecurityAttributes)
Definition: npipe.c:246
#define FILE_SHARE_WRITE
Definition: nt_native.h:681
#define GENERIC_WRITE
Definition: nt_native.h:90
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
Definition: synch.c:82
#define PIPE_ACCESS_DUPLEX
Definition: winbase.h:166
#define PIPE_READMODE_MESSAGE
Definition: winbase.h:172
#define PIPE_TYPE_MESSAGE
Definition: winbase.h:170

Referenced by START_TEST().

Variable Documentation

◆ g_dwReadBufferSize

DWORD g_dwReadBufferSize
static

Definition at line 18 of file Pipes.c.

Referenced by PipeReader(), and StartTestCORE17376().

◆ g_PipeName

PCWSTR g_PipeName = L"\\\\.\\pipe\\rostest_pipe"
static

Definition at line 11 of file Pipes.c.

Referenced by StartTestCORE17376().