Merge nucleic/lucid-river-toad-6efj into dev

This commit is contained in:
2026-07-29 03:26:09 -07:00
parent 8f081ab58a
commit 8c8add3c40
3 changed files with 110 additions and 3 deletions
+10
View File
@@ -128,6 +128,16 @@ service proper (`LxssUserSession`, `LxssUserSessionInBox`).
for `IWSLCSessionManager`. One object, two faces. `IWSLCVirtualMachine` was refused by every
class, confirming §13.1's retraction against the machine rather than against an IDL.
`--internal-call` then confirmed the **vtable** matches the IDL: `GetVersion()` (slot 3) returned
2.9.4, agreeing with the compat `WslcService.GetVersion()` in the same run — the same service
answering through both faces — and `ListSessions()` (slot 6) returned S_OK. So hand-written
`ComImport` is sufficient and the C++/WinRT shim §13.1 mused about is not needed.
It returned **0 sessions**, though, so the entry-struct layout (inline `wchar_t` buffers, the same
shape `ListContainers` uses) is still untested. Run `--session --keep --internal-call` to create a
session, re-adopt it through the internal interface, and exercise it — that combination is §2.3's
reattach story end to end, and it also answers the handoff question below. `wsl --shutdown` after.
The hypothesis was that one of those objects also implements the internal interface — COM
objects routinely expose several — so `--internal` activates each and QIs for the internal IIDs.
It **never calls a method**, so a vtable mismatch cannot crash it, and QI alone answers the