OpenVPN
Functions
ring_buffer.c File Reference
#include "ring_buffer.h"
Include dependency graph for ring_buffer.c:

Go to the source code of this file.

Functions

bool register_ring_buffers (HANDLE device, struct tun_ring *send_ring, struct tun_ring *receive_ring, HANDLE send_tail_moved, HANDLE receive_tail_moved)
 Registers ring buffers used to exchange data between userspace openvpn process and wintun kernel driver, see https://github.com/WireGuard/wintun#registering-rings. More...
 

Function Documentation

◆ register_ring_buffers()

bool register_ring_buffers ( HANDLE  device,
struct tun_ring send_ring,
struct tun_ring receive_ring,
HANDLE  send_tail_moved,
HANDLE  receive_tail_moved 
)

Registers ring buffers used to exchange data between userspace openvpn process and wintun kernel driver, see https://github.com/WireGuard/wintun#registering-rings.

Parameters
devicehandle to opened wintun device
send_ringpointer to send ring
receive_ringpointer to receive ring
send_tail_movedevent set by wintun to signal openvpn that data is available for reading in send ring
receive_tail_movedevent set by openvpn to signal wintun that data has been written to receive ring
Returns
true if registration is successful, false otherwise - use GetLastError()

Definition at line 30 of file ring_buffer.c.

References tun_register_rings::receive, tun_register_rings::ring, tun_register_rings::ring_size, tun_register_rings::send, tun_register_rings::tail_moved, and TUN_IOCTL_REGISTER_RINGS.

Referenced by HandleRegisterRingBuffers(), and wintun_register_ring_buffer().