Since I upgraded to Windows 7 an annoying problem regarding USB device ejection bugged me for quite some time. At least for my system configuration I now seem to have found a working solution.
The symptom: When you try to eject an USB device using the “Safely Remove Hardware and Eject Media” tray icon it takes ages until the popup menu appears where you can eventually select the device to eject from.
The problem #1: When Windows tries to build the list of ejectable devices it also seems to scan all configured printers – unfortunately this does not only include local printers connected via USB but also network printers. Since I am working from different locations not all network printers are reachable all the time. But Windows still tries to determine the printers’ connection state and for offline printers this takes until a network time out occurs.
The solution #1: The real solution for this would be if Microsoft would provide a patch that network printers are not taken in account when building the list of ejectable devices (which makes no sense anyway). As a workaround I disabled the “SNMP Status Enabled” option of the TCP/IP printer ports. You can do this as follows:
- Open the “Devices and Printers” control panel
- Click the “Printer server properties” button or via the menu File->Printer server properties
- Click the “Ports” tab
- For each port where the description says “Standard TCP/IP Port”, click “Configure Port…” and disable the option “SNMP Status Enabled”
- Voilá¡, the “Safely Remove Hardware” pop-up menu appears in a snap again!
The only disadvantage of disabling SNMP status checking is that the printer control panel does not indicate the connection state of the network printers anymore. But for me this is the smaller issue.
The problem #2: Unfortunately the described solution did not work on all of my machines (especially Lenovo ThinkPads).
The solution #2: After a long search I eventually I came acros this post http://forums.lenovo.com/t5/T400-T500-and-newer-T-series/quot-Safely-remove-hardware-and-eject-media-quot-is-very-slow/m-p/442531#M44303 where it says:
Windows 7 Lenovo preload
It will take longer time to show a list for removal device candidates than previous OS, when clicking “Show hidden icons” from task tray then clicking “Safely Remove Hardware and Eject Media”.
Cause of the issue:
Windows 7 will start to scan some files in folders when click “Safely Remove Hardware and Eject Media”. Due to this scanning process, it takes times to prepare a list of devices.
How to solve this problem:
Eliminating number of unused files will shorten the scanning process.
There are lots of files for national language support of the Windows in %programdata%\Microsoft\Windows\DeviceMetadataStore
Usually in C:\ProgramData\Microsoft\Windows\MetadataStore. It carries various icon data and resource data for displaying in some managing process such as defining printers.
There are “READ ONLY” folders like following:
- cs-CZ for Czech
- da-DK for Danish
- de-DE for German
- el-GR for Greek
- en-US for English
- es-ES for Spanish
- fi-FI for Finnish
- fr-FR for French
- he-IL for Hebrew
- hu-HU for Hungarian
- it-IT for Italian
- ja-JP for Japanese
- ko-KR for Korean
- nb-NO for Norwegian
- nl-NL for Dutch
- pl-PL for Polish
- pt-BR for Portuguese (Brazil)
- pt-PT for Portuguese (Portugal)
- ru-RU for Russian
- sl-SI for Slovenian
- sv-SE for Swedish
- tr-TR for Turkish
- zh-CN for Chinese (Simplified, PRC)
- zh-TW for Chinese (Traditional, Taiwan)
Each folder carries 24 device metadata files except en-US carrying 26 files. Those file name will be “hexadecimal numbers”.devicemetadata-ms.
Depends on your computing environment, there may be some language folders never used. Removing those folders and files will speed up scanning process remarkably.
Note: en-US folder should not be removed. There are commonly used files in other language.
Since those folders are read only, a following dialog will come up with attempting delete a folder. Click “Continue” button will delete a folder. If you need a administrator access to delete, please consult your system administrator.