windivert_sys/bindings/
ioctl.rs1#![allow(missing_docs)]
7
8#[repr(C)]
9#[derive(Copy, Clone)]
10pub union WINDIVERT_IOCTL {
11 pub recv: WINDIVERT_IOCTL_RECV,
12 pub send: WINDIVERT_IOCTL_SEND,
13 pub initialize: WINDIVERT_IOCTL_INITIALIZE,
14 pub startup: WINDIVERT_IOCTL_STARTUP,
15 pub shutdown: WINDIVERT_IOCTL_SHUTDOWN,
16 pub get_param: WINDIVERT_IOCTL_GET_PARAM,
17 pub set_param: WINDIVERT_IOCTL_SET_PARAM,
18 _union_align: [u8; 16usize],
19}
20
21#[repr(C, packed)]
22#[derive(Debug, Default, Copy, Clone)]
23pub struct WINDIVERT_IOCTL_RECV {
24 pub addr: u64,
25 pub addr_len_ptr: u64,
26}
27
28pub type WINDIVERT_IOCTL_SEND = WINDIVERT_IOCTL_RECV;
29
30#[repr(C, packed)]
31#[derive(Debug, Default, Copy, Clone)]
32pub struct WINDIVERT_IOCTL_INITIALIZE {
33 pub layer: u32,
34 pub priority: u32,
35 pub flags: u64,
36}
37
38#[repr(C, packed)]
39#[derive(Debug, Default, Copy, Clone)]
40pub struct WINDIVERT_IOCTL_STARTUP {
41 pub flags: u64,
42}
43
44#[repr(C, packed)]
45#[derive(Debug, Default, Copy, Clone)]
46pub struct WINDIVERT_IOCTL_SHUTDOWN {
47 pub how: u32,
48}
49
50#[repr(C, packed)]
51#[derive(Debug, Default, Copy, Clone)]
52pub struct WINDIVERT_IOCTL_GET_PARAM {
53 pub param: u32,
54}
55
56#[repr(C, packed)]
57#[derive(Debug, Default, Copy, Clone)]
58pub struct WINDIVERT_IOCTL_SET_PARAM {
59 pub val: u64,
60 pub param: u32,
61}