For those running Windows to Go on an external NVME - Here's how to fix your SM going into S0 Low Power State!
Before people downvote because "windows be bad", I agree. It's why I switched to this platform. That said, there are some games that simply do NOT run on Proton. For those of us who are trying to run Windows to Go (Windows 11 Home version) on an external NVME, this is how you get your system to run stabile without the NVME turning off under heavy load (intense gameplay with lots of effects) or at idle or after updates. I'm leaving this for prosperity for the community for anyone going forward. This will set up your SM to essentially run like a kiosk / server, and stop going into lower power states or restricting power to your USB ports, which obviously would kill the operating system. I've put in a LOT of time into this, and I can confirm it's now no longer turning off under load or through idle. Enjoy.
Step 1: Make sure you run your NVME enclosure through a powered USBC hub. I have mine on a 12V power supply, but you'll need to make sure the NVME enclosure can be powered fully as the Steam Machine CAN NOT be prevented from entering S0 low power states. I'm not sure as to why, I think this is on a Bios or hardware level, but the USB C port WILL restrict power at times, and you need to make sure you're not relying on the USB C port along to supply your drive power, or it will shut off under heavy load, killing Windows instantly, and giving you a "Do not unplug your USB Drive" error once re-logged in!
Step 2: Device manager - go to properties on every USB mass storage device - go to power management - Uncheck "Allow the computer to turn off this device to save power" This will make sure your powered USB Hub doesn't turn off nor any other USB port / source.
Step 3: Go to Terminal (Admin) and run these commands individually and hit enter after each one:
powercfg -change standby-timeout-ac 0
powercfg -change standby-timeout-dc 0
powercfg -change monitor-timeout-ac 0
powercfg -change monitor-timeout-dc 0
powercfg -change hibernate-timeout-ac 0
powercfg -change hibernate-timeout-dc 0
Step 4: Go to Registry Editor:
Go to each folder, and right click the folder, add new key, then select DWORD. This will make a new file in the folder. Rename it, and then change the value in its properties as listed.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\
{4d36e97d-e325-11ce-bfc1-08002be10318}
Create DWORD. Name it "EnableASPM". Set value to 0.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci\Parameters\Device
Create DWORD. Name it "NoIdle". Set value to 1.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USB
Create DWORD. Name it "DisableIdle". Set value to 1.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power
Create DWORD. Name it "IdleDetectionEnabled". Set value to 0.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance
Create DWORD. Name it "MaintenanceDisabled". Set value to 1.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Power
Create DWORD. Name it "DisableDxgIdle". Set value to 1.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power
Create DWORD. Name it "PlatformAoAcOverride". Set value to 1.
I hope this helps!
Posted Aug 10, 2026, 4:12 PM UTC