mirror-ac/user/pipe.cpp

52 lines
1.4 KiB
C++
Raw Normal View History

2023-08-22 19:32:25 +02:00
#include "pipe.h"
#include "common.h"
2023-09-08 09:42:35 +02:00
#include <intrin.h>
2023-08-22 19:32:25 +02:00
global::Pipe::Pipe(LPTSTR PipeName)
2023-08-22 19:32:25 +02:00
{
this->pipe_name = PipeName;
this->pipe_handle = CreateFile(this->pipe_name,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL);
if (this->pipe_handle == INVALID_HANDLE_VALUE)
{
LOG_ERROR("CreateFile failed with status 0x%x", GetLastError());
return;
}
2023-08-22 19:32:25 +02:00
}
void
global::Pipe::WriteToPipe(PVOID Buffer, SIZE_T Size)
2023-08-22 19:32:25 +02:00
{
DWORD bytes_written = 0;
WriteFile(this->pipe_handle, Buffer, Size, &bytes_written, NULL);
if (bytes_written == 0)
{
LOG_ERROR("WriteFile failed with status code 0x%x", GetLastError());
return;
}
2023-08-22 19:32:25 +02:00
}
void
global::Pipe::ReadPipe(PVOID Buffer, SIZE_T Size)
2023-08-22 19:32:25 +02:00
{
BOOL status = FALSE;
DWORD bytes_read = 0;
status = ReadFile(this->pipe_handle, Buffer, Size, &bytes_read, NULL);
if (status == NULL)
{
LOG_ERROR("ReadFile failed with status code 0x%x", GetLastError());
return;
}
2023-08-22 19:32:25 +02:00
}