master
idl 404 lines 18.8 KB
Raw
1 /*++
2
3 Copyright (c) Microsoft Corporation. All rights reserved.
4
5 Module Name:
6
7 wslservice.idl
8
9 Abstract:
10
11 This file contains the COM object definitions used to talk with the WSL
12 service "WslService"
13 // N.B. These interfaces are internal and non-stable. ABI breaking changes in this
14 // file are OK, since the client and service always ship together in the same package.
15
16 --*/
17
18 import "unknwn.idl";
19 import "wtypes.idl";
20
21 // Name of the inbox WSL service.
22 cpp_quote("#define LXSS_INBOX_SERVICE_NAME L\"lxssmanager\"")
23
24 // Legacy install registry key state key name.
25 //
26 // N.B. This registry key value is used to determine if a user has a pre-RS3
27 // install. This value should only be used to migrate installs to the new
28 // registration format.
29 cpp_quote("#define LXSS_LEGACY_INSTALL_VALUE L\"State\"")
30 cpp_quote("#define LXSS_LEGACY_INSTALL_NAME L\"Legacy\"")
31
32 // Special GUIDs used to identify the legacy WSL distro and the system distro.
33 cpp_quote("const GUID LXSS_LEGACY_DISTRO_GUID = {0x12345678, 0x1234, 0x5678, {0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef}};")
34 cpp_quote("const GUID WSL2_SYSTEM_DISTRO_GUID = {0x20170608, 0x0542, 0x2019, {0x07, 0x29, 0x00, 0x11, 0x20, 0x12, 0x02, 0x14}};")
35
36 typedef enum _LxssDistributionState
37 {
38 LxssDistributionStateInvalid = 0,
39 LxssDistributionStateInstalled,
40 LxssDistributionStateRunning,
41 LxssDistributionStateInstalling,
42 LxssDistributionStateUninstalling,
43 LxssDistributionStateConverting,
44 LxssDistributionStateExporting,
45 LxssDistributionStateCompacting
46 } LxssDistributionState;
47
48 typedef
49 enum _LxssHandleType {
50 LxssHandleConsole = 0,
51 LxssHandleInput,
52 LxssHandleOutput,
53 } LxssHandleType;
54
55 typedef
56 enum _LxssExecutionContextFlags {
57 LxssExecutionContextFlagsNone = 0,
58 LxssExecutionContextFlagsEnableContextualizedErrors = 1,
59 LxssExecutionContextFlagsEnableUserWarnings = 2
60 } LxssExecutionContextFlags;
61
62 cpp_quote("#define LXSS_HANDLE_USE_CONSOLE 0")
63
64 typedef
65 struct _LXSS_HANDLE {
66 ULONG Handle;
67 LxssHandleType HandleType;
68 } LXSS_HANDLE, *PLXSS_HANDLE;
69
70 typedef
71 struct _LXSS_STD_HANDLES {
72 LXSS_HANDLE StdIn;
73 LXSS_HANDLE StdOut;
74 LXSS_HANDLE StdErr;
75 } LXSS_STD_HANDLES, *PLXSS_STD_HANDLES;
76
77 typedef
78 struct _LXSS_ENUMERATE_INFO {
79 GUID DistroGuid;
80 LxssDistributionState State;
81 ULONG Version;
82 ULONG Flags;
83 WCHAR DistroName[257];
84 } LXSS_ENUMERATE_INFO, *PLXSS_ENUMERATE_INFO;
85
86 typedef
87 struct _LXSS_ERROR_INFO {
88 ULONG Flags;
89 ULONGLONG Context;
90 [string] LPWSTR Message;
91 [string] LPWSTR Warnings;
92 ULONG WarningsPipe;
93 } LXSS_ERROR_INFO, *PLXSS_ERROR_INFO;
94
95 cpp_quote("#define LXSS_DISTRO_VERSION_LEGACY 0")
96 cpp_quote("#define LXSS_DISTRO_VERSION_1 1")
97 cpp_quote("#define LXSS_DISTRO_VERSION_2 2")
98 cpp_quote("#define LXSS_DISTRO_VERSION_CURRENT LXSS_DISTRO_VERSION_2")
99 cpp_quote("#define LXSS_DISTRO_USES_WSL_FS(DistroVersion) (DistroVersion >= LXSS_DISTRO_VERSION_2)")
100
101 cpp_quote("#define LXSS_DISTRO_DEFAULT_ENVIRONMENT \"HOSTTYPE=\" DISTRO_HOSTTYPE \"\\0LANG=en_US.UTF-8\\0PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games\\0TERM=xterm-256color\\0\"")
102
103 cpp_quote("#define LXSS_DISTRO_DEFAULT_KERNEL_COMMAND_LINE \"BOOT_IMAGE=/kernel init=/init\"")
104
105 cpp_quote("#define LXSS_DISTRO_FLAGS_ENABLE_INTEROP 0x1")
106 cpp_quote("#define LXSS_DISTRO_FLAGS_APPEND_NT_PATH 0x2")
107 cpp_quote("#define LXSS_DISTRO_FLAGS_ENABLE_DRIVE_MOUNTING 0x4")
108 cpp_quote("#define LXSS_DISTRO_FLAGS_VM_MODE 0x8")
109 cpp_quote("#define LXSS_DISTRO_FLAGS_UNCHANGED 0xFFFFFFFE") // Not using ~0 since the inbox tests use that value to validate that invalid flags return an error.
110 cpp_quote("#define LXSS_DISTRO_FLAGS_ALL (LXSS_DISTRO_FLAGS_ENABLE_INTEROP | LXSS_DISTRO_FLAGS_APPEND_NT_PATH | LXSS_DISTRO_FLAGS_ENABLE_DRIVE_MOUNTING | LXSS_DISTRO_FLAGS_VM_MODE)")
111 cpp_quote("#define LXSS_DISTRO_FLAGS_DEFAULT (LXSS_DISTRO_FLAGS_ENABLE_INTEROP | LXSS_DISTRO_FLAGS_APPEND_NT_PATH | LXSS_DISTRO_FLAGS_ENABLE_DRIVE_MOUNTING)")
112
113 cpp_quote("#define LXSS_ENUMERATE_FLAGS_DEFAULT 0x1")
114
115 cpp_quote("#define LXSS_GET_DISTRO_ID_LIST_ALL 0x1")
116
117 cpp_quote("#define LXSS_CREATE_INSTANCE_FLAGS_ALLOW_FS_UPGRADE 0x1")
118 cpp_quote("#define LXSS_CREATE_INSTANCE_FLAGS_OPEN_EXISTING 0x2")
119 cpp_quote("#define LXSS_CREATE_INSTANCE_FLAGS_IGNORE_CLIENT 0x4")
120 cpp_quote("#define LXSS_CREATE_INSTANCE_FLAGS_USE_SYSTEM_DISTRO 0x8")
121 cpp_quote("#define LXSS_CREATE_INSTANCE_FLAGS_SHELL_LOGIN 0x10")
122 cpp_quote("#define LXSS_CREATE_INSTANCE_FLAGS_ALL (LXSS_CREATE_INSTANCE_FLAGS_ALLOW_FS_UPGRADE | LXSS_CREATE_INSTANCE_FLAGS_OPEN_EXISTING | LXSS_CREATE_INSTANCE_FLAGS_IGNORE_CLIENT | LXSS_CREATE_INSTANCE_FLAGS_USE_SYSTEM_DISTRO | LXSS_CREATE_INSTANCE_FLAGS_SHELL_LOGIN)")
123
124 cpp_quote("#define LXSS_EXPORT_DISTRO_FLAGS_VHD 0x1")
125 cpp_quote("#define LXSS_EXPORT_DISTRO_FLAGS_GZIP 0x2")
126 cpp_quote("#define LXSS_EXPORT_DISTRO_FLAGS_XZIP 0x4")
127 cpp_quote("#define LXSS_EXPORT_DISTRO_FLAGS_VERBOSE 0x8")
128 cpp_quote("#define LXSS_EXPORT_DISTRO_FLAGS_ALL (LXSS_EXPORT_DISTRO_FLAGS_VHD | LXSS_EXPORT_DISTRO_FLAGS_GZIP | LXSS_EXPORT_DISTRO_FLAGS_XZIP | LXSS_EXPORT_DISTRO_FLAGS_VERBOSE)")
129
130 cpp_quote("#define LXSS_IMPORT_DISTRO_FLAGS_VHD 0x1")
131 cpp_quote("#define LXSS_IMPORT_DISTRO_FLAGS_CREATE_SHORTCUT 0x2")
132 cpp_quote("#define LXSS_IMPORT_DISTRO_FLAGS_NO_OOBE 0x4")
133 cpp_quote("#define LXSS_IMPORT_DISTRO_FLAGS_FIXED_VHD 0x8")
134 cpp_quote("#define LXSS_IMPORT_DISTRO_FLAGS_ALL (LXSS_IMPORT_DISTRO_FLAGS_VHD | LXSS_IMPORT_DISTRO_FLAGS_CREATE_SHORTCUT | LXSS_IMPORT_DISTRO_FLAGS_NO_OOBE | LXSS_IMPORT_DISTRO_FLAGS_FIXED_VHD)")
135
136 cpp_quote("#define LXSS_ATTACH_MOUNT_FLAGS_PASS_THROUGH 0x1")
137 cpp_quote("#define LXSS_ATTACH_MOUNT_FLAGS_VHD 0x2")
138
139 cpp_quote("#define LXSS_PLAN9_UNIX_SOCKET_A \"fsserver\"")
140 cpp_quote("#define LXSS_PLAN9_UNIX_SOCKET L\"fsserver\"")
141
142 cpp_quote("#define LXSS_VM_MODE_INITRD_NAME L\"initrd.img\"")
143 cpp_quote("#define LXSS_VM_MODE_KERNEL_NAME L\"kernel\"")
144 cpp_quote("#define LXSS_VM_MODE_VHD_NAME L\"ext4.vhdx\"")
145
146 cpp_quote("#define LXSS_TOOLS_DIRECTORY L\"tools\"")
147
148 cpp_quote("#define LXSS_REGISTRY_PATH L\"Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Lxss\"")
149 cpp_quote("#define LXSS_DISK_MOUNTS_REGISTRY_PATH LXSS_REGISTRY_PATH L\"\\\\DiskMounts\"")
150 cpp_quote("#define LXSS_WSL_DEFAULT_VERSION L\"DefaultVersion\"")
151 cpp_quote("#define LXSS_NOTIFICATIONS_KEY L\"Notifications\"")
152 cpp_quote("#define LXSS_NOTIFICATION_DRVFS_PERF_DISABLED L\"DrvFsPerfDisabled\"")
153 cpp_quote("#define LXSS_WSL_VERSION_DEFAULT 0")
154 cpp_quote("#define LXSS_WSL_VERSION_1 1")
155 cpp_quote("#define LXSS_WSL_VERSION_2 2")
156
157 cpp_quote("#define WSL_DISTRO_NAME L\"DistributionName\"")
158 cpp_quote("#define LXSS_OOBE_COMPLETE_NAME L\"OOBEComplete\"")
159
160 cpp_quote("const GUID CLSID_LxssUserSession = {0xa9b7a1b9, 0x0671, 0x405c, {0x95, 0xf1, 0xe0, 0x61, 0x2c, 0xb4, 0xce, 0x7e}};")
161 cpp_quote("const GUID CLSID_LxssUserSessionInBox = {0x4f476546, 0xb412, 0x4579, {0xb6, 0x4c, 0x12, 0x3d, 0xf3, 0x31, 0xe3, 0xd6}};")
162 cpp_quote("#ifdef __cplusplus")
163 cpp_quote("class DECLSPEC_UUID(\"a9b7a1b9-0671-405c-95f1-e0612cb4ce7e\") LxssUserSession;")
164 cpp_quote("class DECLSPEC_UUID(\"4f476546-b412-4579-b64c-123df331e3d6\") LxssUserSessionInBox;")
165
166 cpp_quote("#endif")
167
168 [
169 uuid(38541BDC-F54F-4CEB-85D0-37F0F3D2617E),
170 pointer_default(unique),
171 object
172 ]
173 interface ILxssUserSession : IUnknown
174 {
175 //
176 // N.B. This function must be the first one in the interface, so that it can
177 // be exposed privately to external callers without exposing the remaining
178 // functions below it.
179 //
180
181 HRESULT CreateInstance(
182 [in, unique] LPCGUID DistroGuid,
183 [in] ULONG Flags,
184 [in, out] LXSS_ERROR_INFO* Error);
185
186 HRESULT RegisterDistribution(
187 [in, unique] LPCWSTR DistributionName,
188 [in] ULONG Version,
189 [in, system_handle(sh_file)] HANDLE FileHandle,
190 [in, system_handle(sh_pipe)] HANDLE StderrHandle,
191 [in, unique] LPCWSTR TargetDirectory,
192 [in] ULONG Flags,
193 [in] ULONG64 VhdSize,
194 [in, unique] LPCWSTR PackageFamilyName,
195 [out] LPWSTR* InstalledDistributionName,
196 [in, out] LXSS_ERROR_INFO* Error,
197 [out, retval] GUID* pDistroGuid
198 );
199
200 HRESULT RegisterDistributionPipe(
201 [in, unique] LPCWSTR DistributionName,
202 [in] ULONG Version,
203 [in, system_handle(sh_pipe)] HANDLE PipeHandle,
204 [in, system_handle(sh_pipe)] HANDLE StderrHandle,
205 [in, unique] LPCWSTR TargetDirectory,
206 [in] ULONG Flags,
207 [in] ULONG64 VhdSize,
208 [in, unique] LPCWSTR PackageFamilyName,
209 [out] LPWSTR* InstalledDistributionName,
210 [in, out] LXSS_ERROR_INFO* Error,
211 [out, retval] GUID* pDistroGuid);
212
213 HRESULT GetDistributionId(
214 [in] LPCWSTR DistributionName,
215 [in] ULONG Flags,
216 [in, out] LXSS_ERROR_INFO* Error,
217 [out, retval] GUID* pDistroGuid);
218
219 HRESULT TerminateDistribution(
220 [in, unique] LPCGUID DistroGuid,
221 [in, out] LXSS_ERROR_INFO* Error);
222
223 HRESULT UnregisterDistribution(
224 [in] LPCGUID DistroGuid,
225 [in, out] LXSS_ERROR_INFO* Error);
226
227 HRESULT ConfigureDistribution(
228 [in, unique] LPCGUID DistroGuid,
229 [in] ULONG DefaultUid,
230 [in] ULONG Flags,
231 [in, out] LXSS_ERROR_INFO* Error);
232
233 HRESULT GetDistributionConfiguration(
234 [in, unique] LPCGUID DistroGuid,
235 [out] LPWSTR* DistributionName,
236 [out] ULONG* Version,
237 [out] ULONG* DefaultUid,
238 [out] ULONG* DefaultEnvironmentCount,
239 [out, size_is(, *DefaultEnvironmentCount)] LPSTR** DefaultEnvironment,
240 [out] ULONG* Flags,
241 [in, out] LXSS_ERROR_INFO* Error);
242
243 HRESULT GetDefaultDistribution(
244 [in, out] LXSS_ERROR_INFO* Error,
245 [out, retval] LPGUID pResultState);
246
247 HRESULT ResizeDistribution(
248 [in] LPCGUID DistroGuid,
249 [in, system_handle(sh_pipe)] HANDLE OutputHandle,
250 [in] ULONG64 NewSize,
251 [in, out] LXSS_ERROR_INFO* Error);
252
253 HRESULT SetDefaultDistribution(
254 [in] LPCGUID DistroGuid,
255 [in, out] LXSS_ERROR_INFO* Error);
256
257 HRESULT SetSparse(
258 [in] LPCGUID DistroGuid,
259 [in] BOOLEAN Sparse,
260 [in] BOOLEAN AllowUnsafe,
261 [in, out] LXSS_ERROR_INFO* Error);
262
263 HRESULT EnumerateDistributions(
264 [out] ULONG *DistributionCount,
265 [out, size_is(, *DistributionCount)] LXSS_ENUMERATE_INFO **Distributions,
266 [in, out] LXSS_ERROR_INFO* Error);
267
268 HRESULT CreateLxProcess(
269 [in, unique] LPCGUID DistroGuid,
270 [in, unique] LPCSTR Filename,
271 [in] ULONG CommandLineCount,
272 [in, unique, size_is(CommandLineCount)] LPCSTR* CommandLine,
273 [in, unique] LPCWSTR CurrentWorkingDirectory,
274 [in, unique] LPCWSTR NtPath,
275 [in, unique, size_is(NtEnvironmentLength)] WCHAR *NtEnvironment,
276 [in] ULONG NtEnvironmentLength,
277 [in, unique] LPCWSTR Username,
278 [in] SHORT Columns,
279 [in] SHORT Rows,
280 [in] ULONG ConsoleHandle,
281 [in] PLXSS_STD_HANDLES StdHandles,
282 [in] ULONG Flags,
283 [out] GUID* DistributionId,
284 [out] GUID* InstanceId,
285 [out, system_handle(sh_file)] HANDLE *ProcessHandle,
286 [out, system_handle(sh_file)] HANDLE *ServerHandle,
287 [out, system_handle(sh_socket)] HANDLE* StandardIn,
288 [out, system_handle(sh_socket)] HANDLE* StandardOut,
289 [out, system_handle(sh_socket)] HANDLE* StandardErr,
290 [out, system_handle(sh_socket)] HANDLE* CommunicationChannel,
291 [out, system_handle(sh_socket)] HANDLE* InteropSocket,
292 [in, out] LXSS_ERROR_INFO* Error);
293
294 HRESULT SetVersion(
295 [in] LPCGUID DistroGuid,
296 [in] ULONG Version,
297 [in, system_handle(sh_pipe)] HANDLE StderrHandle,
298 [in, out] LXSS_ERROR_INFO* Error);
299
300 HRESULT ExportDistribution(
301 [in, unique] LPCGUID DistroGuid,
302 [in, system_handle(sh_file)] HANDLE FileHandle,
303 [in, system_handle(sh_pipe)] HANDLE StderrHandle,
304 [in] ULONG Flags,
305 [in, out] LXSS_ERROR_INFO* Error);
306
307 HRESULT ExportDistributionPipe(
308 [in, unique] LPCGUID DistroGuid,
309 [in, system_handle(sh_pipe)] HANDLE PipeHandle,
310 [in, system_handle(sh_pipe)] HANDLE StderrHandle,
311 [in] ULONG Flags,
312 [in, out] LXSS_ERROR_INFO* Error);
313
314 HRESULT AttachDisk(
315 [in] LPCWSTR Disk,
316 [in] ULONG Flags,
317 [in, out] LXSS_ERROR_INFO* Error);
318
319 HRESULT DetachDisk(
320 [in, unique] LPCWSTR Disk,
321 [out] int* Result,
322 [out] int* Step,
323 [in, out] LXSS_ERROR_INFO* Error);
324
325 HRESULT MountDisk(
326 [in] LPCWSTR Disk,
327 [in] ULONG Flags,
328 [in] ULONG PartitionIndex,
329 [in, unique] LPCWSTR Name,
330 [in, unique] LPCWSTR Type,
331 [in, unique] LPCWSTR Options,
332 [out] int* Result,
333 [out] int* Step,
334 [out] LPWSTR* MountName,
335 [in, out] LXSS_ERROR_INFO* Error);
336
337 HRESULT Shutdown(
338 [in] BOOL Force);
339
340 HRESULT ImportDistributionInplace(
341 [in] LPCWSTR DistributionName,
342 [in] LPCWSTR VhdPath,
343 [in, out] LXSS_ERROR_INFO* Error,
344 [out, retval] GUID* pDistroGuid);
345
346 HRESULT MoveDistribution(
347 [in] LPCGUID DistroGuid,
348 [in] LPCWSTR DistributionName,
349 [ in, out ] LXSS_ERROR_INFO * Error);
350
351 HRESULT CompactDistribution(
352 [in] LPCGUID DistroGuid,
353 [in, out] LXSS_ERROR_INFO* Error);
354 };
355
356
357 cpp_quote("// LXSS specific errors")
358 cpp_quote("#define WSL_E_BASE (0x0300)")
359 cpp_quote("#define WSL_E_DEFAULT_DISTRO_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 1) /* 0x80040301 */")
360 cpp_quote("#define WSL_E_DISTRO_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 2) /* 0x80040302 */")
361 cpp_quote("#define WSL_E_WSL1_NOT_SUPPORTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 3) /* 0x80040303 */")
362 cpp_quote("#define WSL_E_VM_MODE_NOT_SUPPORTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 4) /* 0x80040304 */")
363 cpp_quote("#define WSL_E_TOO_MANY_DISKS_ATTACHED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 5) /* 0x80040305 */")
364 cpp_quote("#define WSL_E_CONSOLE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 6) /* 0x80040306 */")
365 cpp_quote("#define WSL_E_CUSTOM_KERNEL_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 7) /* 0x80040307 */")
366 cpp_quote("#define WSL_E_USER_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 8) /* 0x80040308 */")
367 cpp_quote("#define WSL_E_INVALID_USAGE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 9) /* 0x80040309 */")
368 cpp_quote("#define WSL_E_EXPORT_FAILED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0xa) /* 0x8004030a */")
369 cpp_quote("#define WSL_E_IMPORT_FAILED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0xb) /* 0x8004030b */")
370 cpp_quote("#define WSL_E_DISTRO_NOT_STOPPED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0xc) /* 0x8004030c */")
371 cpp_quote("#define WSL_E_TTY_LIMIT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0xd) /* 0x8004030d */")
372 cpp_quote("#define WSL_E_CUSTOM_SYSTEM_DISTRO_ERROR MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0xe) /* 0x8004030e */")
373 cpp_quote("#define WSL_E_LOWER_INTEGRITY MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0xf) /* 0x8004030f */")
374 cpp_quote("#define WSL_E_HIGHER_INTEGRITY MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x10) /* 0x80040310 */")
375 cpp_quote("#define WSL_E_FS_UPGRADE_NEEDED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x11) /* 0x80040311 */")
376 cpp_quote("#define WSL_E_USER_VHD_ALREADY_ATTACHED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x12) /* 0x80040312 */")
377 cpp_quote("#define WSL_E_VM_MODE_INVALID_STATE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x13) /* 0x80040313 */")
378 cpp_quote("#define WSL_E_VM_MODE_MOUNT_NAME_ALREADY_EXISTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x14) /* 0x80040314 */")
379 cpp_quote("#define WSL_E_ELEVATION_NEEDED_TO_MOUNT_DISK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x15) /* 0x80040315 */")
380 cpp_quote("#define WSL_E_DISK_ALREADY_ATTACHED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x18) /* 0x80040318 */")
381 cpp_quote("#define WSL_E_DISK_ALREADY_MOUNTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x19) /* 0x80040319 */")
382 cpp_quote("#define WSL_E_DISK_MOUNT_FAILED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x1A) /* 0x8004031A */")
383 cpp_quote("#define WSL_E_DISK_UNMOUNT_FAILED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x1B) /* 0x8004031B */")
384 cpp_quote("#define WSL_E_WSL2_NEEDED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x1C) /* 0x8004031C */")
385 cpp_quote("#define WSL_E_VM_MODE_INVALID_MOUNT_NAME MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x1D) /* 0x8004031D */")
386 cpp_quote("#define WSL_E_GUI_APPLICATIONS_DISABLED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x1E) /* 0x8004031E */")
387 cpp_quote("#define WSL_E_DISTRO_ONLY_AVAILABLE_FROM_STORE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x1F) /* 0x8004031F */")
388 cpp_quote("#define WSL_E_WSL_MOUNT_NOT_SUPPORTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x20) /* 0x80040320 */")
389 cpp_quote("#define WSL_E_WSL_OPTIONAL_COMPONENT_REQUIRED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x21) /* 0x80040321 */")
390 cpp_quote("#define WSL_E_VMSWITCH_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x24) /* 0x80040324 */")
391 cpp_quote("#define WSL_E_VMSWITCH_NOT_SET MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x25) /* 0x80040325 */")
392 cpp_quote("#define WSL_E_NOT_A_LINUX_DISTRO MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x26) /* 0x80040326 */")
393 cpp_quote("#define WSL_E_OS_NOT_SUPPORTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x27) /* 0x80040327 */")
394 cpp_quote("#define WSL_E_INSTALL_PROCESS_FAILED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x28) /* 0x80040328 */")
395 cpp_quote("#define WSL_E_INSTALL_COMPONENT_FAILED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x29) /* 0x80040329 */")
396 cpp_quote("/* 0x8004032A is in use for WSL_E_PLUGIN_REQUIRES_UPDATE */")
397 cpp_quote("#define WSL_E_DISK_MOUNT_DISABLED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x2B) /* 0x8004032B */")
398 cpp_quote("#define WSL_E_WSL1_DISABLED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x2C) /* 0x8004032C */")
399 cpp_quote("#define WSL_E_VIRTUAL_MACHINE_PLATFORM_REQUIRED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x2D) /* 0x8004032D */")
400 cpp_quote("#define WSL_E_LOCAL_SYSTEM_NOT_SUPPORTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x2E) /* 0x8004032E */")
401 cpp_quote("#define WSL_E_DISK_CORRUPTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x2F) /* 0x8004032F */")
402 cpp_quote("#define WSL_E_DISTRIBUTION_NAME_NEEDED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x30) /* 0x80040330 */")
403 cpp_quote("#define WSL_E_INVALID_JSON MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x31) /* 0x80040331 */")
404 cpp_quote("#define WSL_E_VM_CRASHED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, WSL_E_BASE + 0x32) /* 0x80040332 */")