TransactNamedPipe function kernel32

Win32Result<bool> TransactNamedPipe(
  1. HANDLE hNamedPipe,
  2. Pointer<NativeType>? lpInBuffer,
  3. int nInBufferSize,
  4. Pointer<NativeType>? lpOutBuffer,
  5. int nOutBufferSize,
  6. Pointer<Uint32> lpBytesRead,
  7. Pointer<OVERLAPPED>? lpOverlapped,
)

Combines the functions that write a message to and read a message from the specified named pipe into a single operation.

To learn more, see learn.microsoft.com/windows/win32/api/namedpipeapi/nf-namedpipeapi-transactnamedpipe.

Implementation

Win32Result<bool> TransactNamedPipe(
  HANDLE hNamedPipe,
  Pointer? lpInBuffer,
  int nInBufferSize,
  Pointer? lpOutBuffer,
  int nOutBufferSize,
  Pointer<Uint32> lpBytesRead,
  Pointer<OVERLAPPED>? lpOverlapped,
) {
  final result_ = TransactNamedPipe_Wrapper(
    hNamedPipe,
    lpInBuffer ?? nullptr,
    nInBufferSize,
    lpOutBuffer ?? nullptr,
    nOutBufferSize,
    lpBytesRead,
    lpOverlapped ?? nullptr,
  );
  return .new(value: result_.value.i32 != FALSE, error: result_.error);
}