Authored by Jim Bovee [MSFT]
Last update: April 17, 2014
Note: The registry workaround described in this blog is no longer required. A major Windows update published on 4/8/2014 reverts the USBSTOR.SYS driver behavior to 8.0. As a result, a storage device that uses BOT protocol will not be suspended when it's idle. So if you are having issues accessing your device after the device has been idle for sometime, please install this latest Windows update first. Here is the direct link to the update: http://support.microsoft.com/kb/2919355. Once the update is installed, you should see the timestamp on the %SystemRoot%\system32\drivers\usbstor.sys file to be 2/22/2014 or later.
In Windows 8.1, to conserve system power, some USB storage devices (external USB hard drives and USB flash drives) enter a low power state (suspended) when they are idle. To view the idle period:
1. Use the Search charm and type “power options”.
2. Click the first result.
3. Click Change Plan Settings of the currently selected power plan.
4. In the Edit Plan Settings dialog click Change advanced power settings.
5. Expand Hard disk and then Turn off hard disk after.
The Setting value indicates the system disk idle period. In this image the idle period is set to 20 minutes (default).
For this system, if no file transfers occur within 20 minutes, the drive enters a suspend state and draws less power from the system.
For most USB storage devices and USB host controllers, the power-saving mechanism works without issues. However, a pre-existing problem in the USB drive or USB host controller might cause these problems after the specified idle period expires:
- The device periodically disconnects and might reconnect leading to poor user experience.
- If you try to access files stored on the drive, Windows Explorer becomes unresponsive for 1-2 minutes.
If you notice any of those problems, first check whether the firmware on the USB host controller or the USB storage device is out of date. If so, get the latest firmware from the system or device manufacturer. A firmware update might resolve the issue.
Otherwise, determine whether the problem occurs during the system disk idle time period (shown in Power Options). If it does, disable suspend on idle for this device as per the instructions given in the next two sections. The first section shows how to find the VID/PID of the device and apply the registry setting manually. Second section shows how to do that using a PowerShell script. Note, you can set the value to “Never” in the Power Options just an experiment to see if that fixes the issue, but the right long term solution is to set the registry setting as described below. This registry setting does not affect the other USB storage devices and results in conserving power.
To disable suspend on idle for this device:
1. Obtain the hardware ID of the USB storage device.
1. Make sure the device is plugged in.
2. Search for “device manager” in the Search charm, and open Device Manager.
3. In Device Manager, expand the Disk Drives and locate the device:
4. Select the View > Devices by connection from the menu:
5. Right-click the USB Mass Storage Device node under which the device appears, and select Properties.
6. On the Details tab, select Hardware Ids from the drop-down list.
7. Make a note of the 4 digits occurring after “VID_” and “PID_” and close Device Manager. In this example, VID is 0004 and PID is 0001.
2. Change the device setting in the registry.
1. Run Registry Editor (regedit.exe) as administrator by searching for “regedit” in the Search charm. Right-click the regedit icon, and select Run as administrator.
2. In Registry Editor, navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbstor.
3. Right-click usbstor and create a key. The name must be VID and PID strings obtained previously. Leading 0’s are significant. For the device in this example the new key name is “00040001”.
4. Right-click the new key and create a DWORD entry named DeviceHackFlags. Set the value to 400 hexadecimal.
5. Disconnect and reconnect the device.
If the workaround resolves the issue please respond with a comment containing the VID and PID for the device and the USB host controller to which it is connected (from top-level parent icon in step 4 of “Obtain Device Hardware ID” section).
PowerShell script to disable suspend
To make it easier to find devices and apply the registry setting, we have recently added a PowerShell script to this blog. The script when run lists all the storage devices and gives you an option to pick a device to either enable or disable the suspend setting.
- Download the ToggleSuspend.ps1 to a local directory.
- Right click on Start button and select "Command Prompt (Admin) option to start a command prompt with Administrator privilege.
- Cd to the directory where you have the script saved.
- Run "Powershell -ExecutionPolicy Bypass -NoProfile -File ToggleSuspend.ps1”. Remove the quotes when you copy paste. The script will display the VID/PID of the storage devices, friendly name of the device as seen in the device manager, and whether the "SuspendOnIdle" option is enable or disabled.
- By selecting the drive number from the list, you can toggle the state.
Please note for some devices, the script may not show the friendly name. This is a known limitation of the script.
Instructions for recording a verification trace only readable by Microsoft have been removed from this blog post. This trace is no longer needed because the script eliminates difficult, error-prone steps in applying the registry workaround,
FYI: A list of Windows 8.1 certified devices which have passed selective suspend testing is available here.
Update: Thanks to all for reporting the VID/PID of the devices that are impacted by selective suspend. Here is the compiled list as of Jan. 27, 2014:
* = Device is fixed by installing KB 2914219--no need to edit registry or use our script. We hope to release another KB to fix more devices, such as the ones not marked with (*).
BUFFALO HD-PNTU3 (1TB)
Buffalo DriveStation HD-LB2.0TU2-UK (2GB)
Buffalo HD-LBV3.0TU3 (3GB)
Buffalo External HDD 500GB
Fantom Drive, USB 3.0, model: GF3BM1000U
Sabrent 2.5" SATA Hard Drive To USB 3.0 Enclosure
Fantom Compact 4 TB USB Hard Drive, model: GF3B4000U
Media Card Reader (Built into Dell XPS 8100)
Fujitu HDD (1TB)
Toshiba Canvio Basic USB 3.0
Toshiba Stor.E 2TB
Toshiba STORE.E ALU 1 TB (USB 3.0)
Hitachi Touro USB 3.0 HDD
Hitachi HDS721010CLA332 USB Device
ADATA Nobility NH03
ADATA HD710 1TB
Kingston DataTraveler HyperX 3.0 USB Device 256GB (DTHX30/256GB)
LaCie 2TB USB Drive
Media Card Reader (Built into Dell XPS 8500)
multi-drive enclosure connected
RaidSonic ICYBOX IB3221StU-B External Case (JMicron Technology Corp 20336 Controller)
Sans Digital TR4U+B
Vantect NexStar HXR4
Fantec QB-35US3R with 4x2 TB
Digitus USB 3 External HDD Enclosure 2.5
Mediasonic H82-SU3S2 ProBox
EAGLE ET-CS2MSU2-BK 2.5" Black USB 2.0 Mesh External Enclosure
Samsung G3 Station 1TB
Apricorn Padlock 3.0
Apricorn Padlock DT 3.0
Apricorn Aegis BIO
Apricorn Padlock SSD
Apricorn FIPS Padlock DT
Apricorn Padlock Pro
iStorage diskAshur DT
iStorage diskAshur FIPS
DiskGenie USB Device
Verbatim Store 'n' Save SuperSpeed 3TB
Verbatim Quad-interface External HDD
Verbatim 1TB-USB 2.0-Drive
WD My Book 3.0 1 TB
|USB\VID_0928&PID_0010||Zalman VE-200SE enclosure|
|USB\VID_0781&PID_5406||SanDisk Micro Cruzer (USB flash drive)|
|USB\VID_12D1&PID_1003||Huawei MMC Storage USB Device|
* = (explained at top of table)