wsl_com_api_sys/
interop.rs1use windows::core::GUID;
2
3#[repr(C)]
5pub struct MESSAGE_HEADER {
6 pub MessageType: u32,
7 pub MessageSize: u32,
8}
9
10#[repr(C)]
11pub struct LX_INIT_CREATE_NT_PROCESS_COMMON {
12 pub FilenameOffset: u32,
13 pub CommandLineOffset: u32,
14 pub CurrentWorkingDirectoryOffset: u32,
15 pub EnvironmentOffset: u32,
16 pub CommandLineCount: u16,
17 pub Rows: u32,
18 pub Columns: u32,
19 pub CreatePseudoconsole: u32,
20}
21
22#[repr(C)]
23pub struct LX_INIT_CREATE_NT_PROCESS {
24 pub Common: LX_INIT_CREATE_NT_PROCESS_COMMON,
25 pub StdFdIds: [u32; 3],
26}
27
28#[repr(C)]
29pub struct LX_INIT_CREATE_PROCESS_RESPONSE {
30 pub Result: i32,
31 pub Flags: u32,
32 pub SignalPipeId: u32,
33}
34
35#[repr(C)]
36pub struct LX_INIT_PROCESS_EXIT_STATUS {
37 pub ExitCode: u32,
38}
39
40#[repr(C)]
41pub struct LX_INIT_WINDOW_SIZE_CHANGED {
42 pub Rows: u32,
43 pub Columns: u32,
44}
45
46#[repr(C)]
47pub struct LX_INIT_CREATE_NT_PROCESS_UTILITY_VM {
48 pub Common: LX_INIT_CREATE_NT_PROCESS_COMMON,
49 pub VmId: GUID,
50 pub Port: u32,
51}
52
53#[repr(C)]
54pub struct LXBUS_IPC_MESSAGE_MARSHAL_HANDLE_DATA {
55 pub Handle: u32,
56 pub HandleType: u32,
57}
58
59#[repr(C)]
60pub union LXBUS_IPC_LX_PROCESS_WAIT_FOR_TERMINATION_PARAMETERS {
61 pub Input: LXBUS_IPC_LX_PROCESS_WAIT_FOR_TERMINATION_INPUT,
62 pub Output: LXBUS_IPC_LX_PROCESS_WAIT_FOR_TERMINATION_OUTPUT,
63}
64
65#[repr(C)]
66#[derive(Copy, Clone)]
67pub struct LXBUS_IPC_LX_PROCESS_WAIT_FOR_TERMINATION_INPUT {
68 pub TimeoutMs: u32,
69}
70
71#[repr(C)]
72#[derive(Copy, Clone)]
73pub struct LXBUS_IPC_LX_PROCESS_WAIT_FOR_TERMINATION_OUTPUT {
74 pub ExitStatus: i32,
75}