|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#include <stdio.h>
|
|
Packit Service |
fa4841 |
#include <winpr/crt.h>
|
|
Packit Service |
fa4841 |
#include <winpr/pipe.h>
|
|
Packit Service |
fa4841 |
#include <winpr/tchar.h>
|
|
Packit Service |
fa4841 |
#include <winpr/winpr.h>
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
bb5c11 |
#define BUFFER_SIZE 16
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
int TestPipeCreatePipe(int argc, char* argv[])
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
BOOL status;
|
|
Packit Service |
fa4841 |
DWORD dwRead;
|
|
Packit Service |
fa4841 |
DWORD dwWrite;
|
|
Packit Service |
fa4841 |
HANDLE hReadPipe;
|
|
Packit Service |
fa4841 |
HANDLE hWritePipe;
|
|
Packit Service |
fa4841 |
BYTE readBuffer[BUFFER_SIZE];
|
|
Packit Service |
fa4841 |
BYTE writeBuffer[BUFFER_SIZE];
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
status = CreatePipe(&hReadPipe, &hWritePipe, NULL, BUFFER_SIZE * 2);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
if (!status)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
_tprintf(_T("CreatePipe failed\n"));
|
|
Packit Service |
fa4841 |
return -1;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
FillMemory(writeBuffer, sizeof(writeBuffer), 0xAA);
|
|
Packit Service |
fa4841 |
status = WriteFile(hWritePipe, &writeBuffer, sizeof(writeBuffer), &dwWrite, NULL);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
if (!status)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
_tprintf(_T("WriteFile failed\n"));
|
|
Packit Service |
fa4841 |
return -1;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
if (dwWrite != sizeof(writeBuffer))
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
bb5c11 |
_tprintf(_T("WriteFile: unexpected number of bytes written: Actual: %")_T(PRIu32)_T(", Expected: %")_T(PRIuz)_T("\n"),
|
|
Packit Service |
bb5c11 |
dwWrite, sizeof(writeBuffer));
|
|
Packit Service |
fa4841 |
return -1;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
ZeroMemory(readBuffer, sizeof(readBuffer));
|
|
Packit Service |
fa4841 |
status = ReadFile(hReadPipe, &readBuffer, sizeof(readBuffer), &dwRead, NULL);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
if (!status)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
_tprintf(_T("ReadFile failed\n"));
|
|
Packit Service |
fa4841 |
return -1;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
if (dwRead != sizeof(readBuffer))
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
bb5c11 |
_tprintf(_T("ReadFile: unexpected number of bytes read: Actual: %")_T(PRIu32)_T(", Expected: %")_T(PRIuz)_T("\n"),
|
|
Packit Service |
bb5c11 |
dwWrite, sizeof(readBuffer));
|
|
Packit Service |
fa4841 |
return -1;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
if (memcmp(readBuffer, writeBuffer, BUFFER_SIZE) != 0)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
_tprintf(_T("ReadFile: read buffer is different from write buffer\n"));
|
|
Packit Service |
fa4841 |
return -1;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
CloseHandle(hReadPipe);
|
|
Packit Service |
fa4841 |
CloseHandle(hWritePipe);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
return 0;
|
|
Packit Service |
fa4841 |
}
|