Environment
- Windows: Microsoft Windows 11 IoT Enterprise LTSC, build 10.0.26100.9168
- GPU: AMD Radeon RX 7600
- GPU driver: 32.0.31041.1004 (2026-08-17) — confirmed as the only AMD driver package left in the driver store (removed 4 stale older versions from 2023-2026, no change to the bug)
- WSL versions tried: 2.7.14.0 (kernel 6.18.33.2), 2.9.12.0 (kernel 6.18.40.1, includes the dxgkrnl memory-leak fix), and a clean reinstall of 2.6.2.0 (kernel 6.6.87.2, Oct 2025) — identical failure on all three
- ROCm 7.2.4 installed in WSL (Ubuntu 22.04), including
librocdxg.so.1.2.2 (meets the >=7.1 requirement) and the generic /usr/lib/wsl/lib/libdxcore.so dependency — both present and correct
Symptom
On every WSL boot, before any user-space code runs:
[ 0.328612] hv_vmbus: registering driver dxgkrnl
[ 1.514588] misc dxg: dxgk: dxgkio_is_feature_enabled: Ioctl failed: -22
[ 1.519442] misc dxg: dxgk: dxgkio_query_adapter_info: Ioctl failed: -22
[ 1.519853] misc dxg: dxgk: dxgkio_query_adapter_info: Ioctl failed: -22
[ 1.520225] misc dxg: dxgk: dxgkio_query_adapter_info: Ioctl failed: -22
[ 1.520741] misc dxg: dxgk: dxgkio_query_adapter_info: Ioctl failed: -2
Consequences:
rocminfo → WSL environment detected. / hsa_init Failed, possibly no supported GPU devices
torch.cuda.is_available() → False (no exception, silent)
/sys/class/kfd/kfd/topology/nodes does not exist
History / why this is likely a regression, not a config issue
This exact machine successfully ran multiple hours-long LoRA fine-tuning jobs (transformers + peft + bitsandbytes, ROCm 7.2) on this same RX 7600 through WSL2 for about a week. The failure appeared with no crash, no BSOD, no Windows Event Viewer entry of any kind (checked System log for the full 48h window around when it broke, all Levels Critical/Error/Warning — completely empty of anything GPU/driver/dxg related), right after the last training job finished, before the next one could be launched. A full Windows reboot did not fix it (this was persistent from the first reboot attempt).
Troubleshooting already done (all with reboots in between, none changed the outcome)
- Plain Windows reboot.
wsl --update --pre-release → kernel 6.18.33.2 → 6.18.40.1 (includes "fix for a memory leak in dxgkrnl"). No change.
- Cleaned the DriverStore of 4 stale AMD graphics driver package versions (2023-08-2026-07), leaving only the current 2026-08-17 build. No change.
- Disabled Hypervisor-Enforced Code Integrity / Memory Integrity via
HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity\Enabled=0 + reboot (confirmed HVCI no longer in SecurityServicesRunning afterwards; Credential Guard/VBS itself still active). No change.
- Full clean reinstall of WSL:
wsl --uninstall, confirmed the Appx package was fully removed, installed Microsoft.WSL_2.6.2.0_x64_ARM64.msixbundle (Oct 2025) from scratch → kernel 6.6.87.2, a completely different kernel major line. No change (existing Ubuntu-22.04 distro registration survived the platform uninstall/reinstall).
- Enabled IOMMU/SR-IOV/Above 4G Decoding in BIOS (previously "Auto") + reboot. No change — and per
dmesg, WSL2 doesn't appear to expose host IOMMU groups to the guest at all (/sys/kernel/iommu_groups/ empty), so this was likely not a relevant variable for GPU-PV specifically, only ruled out for completeness.
- Verified no Group Policy is configured for
SOFTWARE\Policies\Microsoft\Windows\Sandbox (AllowVGPU) or GraphicsDrivers/DeviceGuard under Policies — none exist, so nothing is being blocked by local policy.
- Confirmed via Microsoft Learn's WindowsSandbox Policy CSP documentation that "IoT Enterprise / IoT Enterprise LTSC" is an officially supported edition for the
AllowVGPU capability, so this isn't an edition/licensing exclusion either.
None of the above made any difference — the failure signature (Ioctl failed: -22 on dxgkio_is_feature_enabled and dxgkio_query_adapter_info, at ~1.5s into WSL2 kernel boot) is byte-for-byte identical before and after every attempted fix.
Attached
WslLogs-2026-09-20_17-37-00.zip — full output of collect-wsl-logs.ps1 (default WSL profile), including a WPR trace (logs.etl) captured across a wsl --shutdown + fresh boot + rocminfo repro cycle.
Environment
librocdxg.so.1.2.2(meets the >=7.1 requirement) and the generic/usr/lib/wsl/lib/libdxcore.sodependency — both present and correctSymptom
On every WSL boot, before any user-space code runs:
Consequences:
rocminfo→WSL environment detected./hsa_init Failed, possibly no supported GPU devicestorch.cuda.is_available()→False(no exception, silent)/sys/class/kfd/kfd/topology/nodesdoes not existHistory / why this is likely a regression, not a config issue
This exact machine successfully ran multiple hours-long LoRA fine-tuning jobs (transformers + peft + bitsandbytes, ROCm 7.2) on this same RX 7600 through WSL2 for about a week. The failure appeared with no crash, no BSOD, no Windows Event Viewer entry of any kind (checked System log for the full 48h window around when it broke, all Levels Critical/Error/Warning — completely empty of anything GPU/driver/dxg related), right after the last training job finished, before the next one could be launched. A full Windows reboot did not fix it (this was persistent from the first reboot attempt).
Troubleshooting already done (all with reboots in between, none changed the outcome)
wsl --update --pre-release→ kernel 6.18.33.2 → 6.18.40.1 (includes "fix for a memory leak in dxgkrnl"). No change.HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity\Enabled=0+ reboot (confirmed HVCI no longer inSecurityServicesRunningafterwards; Credential Guard/VBS itself still active). No change.wsl --uninstall, confirmed the Appx package was fully removed, installedMicrosoft.WSL_2.6.2.0_x64_ARM64.msixbundle(Oct 2025) from scratch → kernel 6.6.87.2, a completely different kernel major line. No change (existing Ubuntu-22.04 distro registration survived the platform uninstall/reinstall).dmesg, WSL2 doesn't appear to expose host IOMMU groups to the guest at all (/sys/kernel/iommu_groups/empty), so this was likely not a relevant variable for GPU-PV specifically, only ruled out for completeness.SOFTWARE\Policies\Microsoft\Windows\Sandbox(AllowVGPU) orGraphicsDrivers/DeviceGuardunder Policies — none exist, so nothing is being blocked by local policy.AllowVGPUcapability, so this isn't an edition/licensing exclusion either.None of the above made any difference — the failure signature (
Ioctl failed: -22ondxgkio_is_feature_enabledanddxgkio_query_adapter_info, at ~1.5s into WSL2 kernel boot) is byte-for-byte identical before and after every attempted fix.Attached
WslLogs-2026-09-20_17-37-00.zip— full output ofcollect-wsl-logs.ps1(default WSL profile), including a WPR trace (logs.etl) captured across awsl --shutdown+ fresh boot +rocminforepro cycle.