wsl-com-api-sys 0.1.0

Low-level WSL COM API for Rust
Documentation
pub const LXSS_HANDLE_USE_CONSOLE: u32 = 0;

pub const LXSS_DISTRO_FLAGS_ENABLE_INTEROP: u32 = 0x1;
pub const LXSS_DISTRO_FLAGS_APPEND_NT_PATH: u32 = 0x2;
pub const LXSS_DISTRO_FLAGS_ENABLE_DRIVE_MOUNTING: u32 = 0x4;
pub const LXSS_DISTRO_FLAGS_VM_MODE: u32 = 0x8;
pub const LXSS_DISTRO_FLAGS_WSLCORE_MODE: u32 = 0x10;

pub const LXSS_ENUMERATE_FLAGS_DEFAULT: u32 = 0x1;

pub const LXSS_GET_DISTRO_ID_LIST_ALL: u32 = 0x1;

pub const LXSS_CREATE_INSTANCE_FLAGS_ALLOW_FS_UPGRADE: u32 = 0x1;
pub const LXSS_CREATE_INSTANCE_FLAGS_OPEN_EXISTING: u32 = 0x2;
pub const LXSS_CREATE_INSTANCE_FLAGS_IGNORE_CLIENT: u32 = 0x4;
pub const LXSS_CREATE_INSTANCE_FLAGS_USE_SYSTEM_DISTRO: u32 = 0x8;
pub const LXSS_CREATE_INSTANCE_FLAGS_SHELL_LOGIN: u32 = 0x10;

pub const LXSS_EXPORT_DISTRO_FLAGS_VHD: u32 = 0x1;
pub const LXSS_EXPORT_DISTRO_FLAGS_GZIP: u32 = 0x2;
pub const LXSS_EXPORT_DISTRO_FLAGS_XZIP: u32 = 0x4;
pub const LXSS_EXPORT_DISTRO_FLAGS_VERBOSE: u32 = 0x8;

pub const LXSS_IMPORT_DISTRO_FLAGS_VHD: u32 = 0x1;
pub const LXSS_IMPORT_DISTRO_FLAGS_CREATE_SHORTCUT: u32 = 0x2;
pub const LXSS_IMPORT_DISTRO_FLAGS_NO_OOBE: u32 = 0x4;
pub const LXSS_IMPORT_DISTRO_FLAGS_FIXED_VHD: u32 = 0x8;

pub const LXSS_ATTACH_MOUNT_FLAGS_PASS_THROUGH: u32 = 0x1;
pub const LXSS_ATTACH_MOUNT_FLAGS_VHD: u32 = 0x2;

// Interop message types handled at this time
pub const LX_INIT_MESSAGE_CREATE_PROCESS_UTILITY_VM: u32 = 0x8;
pub const LX_INIT_MESSAGE_EXIT_STATUS: u32 = 0x9;

// Interop flags
pub const LX_INIT_CREATE_PROCESS_RESULT_FLAG_GUI_APPLICATION: u32 = 0x1;

// Interop constants
pub const LX_INIT_STD_FD_COUNT: u32 = 3;
pub const LX_INIT_CREATE_NT_PROCESS_SOCKETS: u32 = 4;

// LXBUS IOCTL codes
// CTL_CODE(FILE_DEVICE_UNKNOWN, 52, METHOD_NEITHER, FILE_ANY_ACCESS)
// = ((0x22) << 16) | ((0) << 14) | ((52) << 2) | (3) = 0x2200D3
pub const LXBUS_IPC_LX_PROCESS_IOCTL_WAIT_FOR_TERMINATION: u32 = 0x2200D3;