Merge nucleic/olive-jade-civet-rznt into dev

This commit is contained in:
2026-07-29 01:10:27 -07:00
parent 88175578fc
commit 9f125628a0
2 changed files with 50 additions and 21 deletions
+10 -6
View File
@@ -87,12 +87,16 @@ name**. That second construction is the whole point, and it is the last open que
on: the compat SDK exposes a `Session` *constructor* and no attach, so does constructing over an
existing name re-adopt it, or refuse?
- **Refused** (`WSLC_E_SESSION_RESERVED`, `0x80040607`) — D13's premise is confirmed, and session
reattach genuinely requires `IWSLCSessionManager::OpenSessionByName` on the internal interface.
- **Constructed** — which is what 2.9.4 actually does. That alone proves nothing (construction may
be lazy), so the probe then runs an **identity test**: terminate the FIRST session and read from
the SECOND. A read that worked before and fails after is one underlying session answering both
handles; a read that keeps working means two independent VMs were running.
**Answered on 2.9.4: it cannot.** The constructor is lazy and always succeeds — judging by it is
what made the first reading of this probe wrong. `Start()` is where the service is consulted, and
a second `Start()` on a running name fails with `ERROR_ALREADY_EXISTS` (0x800700B7). Note it is
*not* `WSLC_E_SESSION_RESERVED`, which exists in `wslc.idl` but evidently means something
narrower — don't key on it.
So the probe judges on `Start()`. If a future version lets the second `Start()` through, it then
runs an **identity test**: terminate the FIRST session and read from the SECOND. A read that
worked before and fails after is one underlying session answering both handles; a read that keeps
working means two independent VMs.
The identity test deliberately uses only the compat SDK. The obvious check would be
`wslc session ls` — but **`wslc.exe` is not on PATH by default**, so a spike that depends on it