This post has been republished via RSS; it originally appeared at: Microsoft USB Blog articles.
First published on MSDN on Oct 31, 2013Authored 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,
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_162B |
Kingston 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_0010 | Zalman VE-200SE enclosure |
USB\VID_0781&PID_5406 | SanDisk Micro Cruzer (USB flash drive) |
USB\VID_0D49&PID_7310 | Maxtor OneTouch |
USB\VID_12D1&PID_1003 | Huawei MMC Storage USB Device |
USB\VID_054C&PID_05C0 USB\VID_054C&PID_07BA |
Sony HDD-1TB Sony HDD-2TB |
USB\VID_19B9&PID_3455 | Drobo 5D |
* = (explained at top of table)