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).

clip_image002[4]

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:
clip_image004[4]

4. Select the View > Devices by connection from the menu:
clip_image006[4]

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.
jim6

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.

clip_image008[4]

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.

clip_image010[4]

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.
  1. Download the ToggleSuspend.ps1 to a local directory.
  2. Right click on Start button and select "Command Prompt (Admin) option to start a command prompt with Administrator privilege.
  3. Cd to the directory where you have the script saved.
  4. 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.
  5. 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, 

Device List

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 (*).

USB\VID_0411&PID_01E7*
USB\VID_0411&PID_01EA*
USB\VID_0411&PID_01E5
USB\VID_0411&PID_0105
BUFFALO HD-PNTU3 (1TB)
Buffalo DriveStation HD-LB2.0TU2-UK (2GB)
Buffalo HD-LBV3.0TU3 (3GB)
Buffalo External HDD 500GB
USB\VID_2009&PID_5004*datAshur
USB\VID_174C&PID_55AA*
USB\VID_174C&PID_5136
USB\VID_174D&PID_5106
USB\VID_0BDA&PID_0184
USB\VID_18E3&PID_9106
Fantom Drive, USB 3.0, model: GF3BM1000U
Sabrent 2.5" SATA Hard Drive To USB 3.0 Enclosure
StarTech SAT2510B12U3
Fantom Compact 4 TB USB Hard Drive, model: GF3B4000U
Media Card Reader (Built into Dell XPS 8100)
USB\VID_04C5&PID_120E*
USB\VID_0480&PID_A006
USB\VID_04BB&PID_013E
USB\VID_0939&PID_0B16
USB\VID_0DC4&PID_020A
USB\VID_0930&PID_0B1A
Fujitu HDD (1TB)
Toshiba Canvio Basic USB 3.0
IOData HDPV-UT
Toshiba Stor.E  2TB
ICY BOX
Toshiba STORE.E ALU 1 TB (USB 3.0)
USB\VID_4971&PID_1012
USB\VID_4971&PID_1013
USB\VID_4971&PID_1014*
USB\VID_4971&PID_1015*
USB\VID_4971&PID_CE17*
USB\VID_1BCF&PID_0C31
Hitachi Touro USB 3.0 HDD




Hitachi HDS721010CLA332 USB Device
USB\VID_125F&PID_A03A*
USB\VID_125F&PID_A15A
ADATA Nobility NH03
ADATA HD710 1TB
USB\VID_0951&PID_162BKingston DataTraveler HyperX 3.0 USB  Device 256GB (DTHX30/256GB)
USB\VID_059F&PID_1018*
USB\VID_058F&PID_6362
LaCie 2TB USB Drive
Media Card Reader (Built into Dell XPS 8500)
USB\VID_1520&PID_0551*multi-drive enclosure connected
USB\VID_152D&PID_2336*
USB\VID_152D&PID_2339*
USB\VID_152D&PID_2352*
USB\VID_152D&PID_2509*
USB\VID_152D&PID_0539
USB\VID_152D&PID_0551
USB\VID_152D&PID_2329
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
USB\VID_04E8&PID_6012*
USB\VID_04E8&PID_6013
USB\VID_04E8&PID_6860
Samsung 1T
Samsung G3 Station 1TB
Samsung i9500
USB\VID_0BC1&VID_A0A4
USB\VID_0BC2&PID_A0A1
USB\VID_0BC2&PID_A0A4
USB\VID_0BC2&PID_A0A5
USB\VID_0BC2&PID_5071*
USB\VID_0BC2&PID_2312*
USB\VID_0BC2&PID_2332
USB\VID_0BC2&PID_2340
USB\VID_0BC2&PID_3300*
USB\VID_0BC2&PID_3000
USB\VID_0BC2&PID_3001
USB\VID_0BC2&PID_3008*
USB\VID_0BC2&PID_3010*
USB\VID_0BC2&PID_3312*
USB\VID_0BC2&PID_3320*
USB\VID_0BC2&PID_3332*
USB\VID_0BC2&PID_3372
USB\VID_0BC2&PID_50B5
USB\VID_0BC2&PID_3330
USB\VID_0BC2&PID_5031
Seagate Drives
USB\VID_0984&PID_0310*
USB\VID_0984&PID_0315*
USB\VID_0984&PID_0340*
USB\VID_0984&PID_1400*
USB\VID_0984&PID_1405*
USB\VID_0984&PID_1406*
USB\VID_0984&PID_0095*
USB\VID_0984&PID_0092*
USB\VID_0984&PID_0317*
USB\VID_0984&PID_0316*
USB\VID_0984&PID_1403*
Apricorn Padlock 3.0
Apricorn Padlock DT 3.0
Apricorn Aegis BIO
Apricorn Fortress
Apricorn Padlock SSD
Apricorn FIPS Padlock DT
Apricorn Padlock Pro
iStorage diskAshur
iStorage diskAshur DT
iStorage diskAshur FIPS 
DiskGenie USB Device
USB\VID_18A5&PID_0400*
USB\VID_18A5&PID_021B*
USB\VID_18A5&PID_0216*
Verbatim Store 'n' Save SuperSpeed 3TB
Verbatim Quad-interface External HDD
Verbatim 1TB-USB 2.0-Drive  
USB\VID_1058&PID_1021*
USB\VID_1058&PID_1140*
USB\VID_1058&PID_0730*
USB\VID_1058&PID_0741*
USB\VID_1058&PID_0748*
USB\VID_1058&PID_1123
Western Digital




WD My Book 3.0 1 TB
USB\VID_0928&PID_0010Zalman VE-200SE enclosure
USB\VID_0781&PID_5406SanDisk Micro Cruzer (USB flash drive)
USB\VID_0D49&PID_7310Maxtor OneTouch
USB\VID_12D1&PID_1003Huawei MMC Storage USB Device
USB\VID_054C&PID_05C0
USB\VID_054C&PID_07BA
Sony HDD-1TB
Sony HDD-2TB
USB\VID_19B9&PID_3455Drobo 5D
* = (explained at top of table)