No Media No Letter

USBDLM

 

No Media No Letter


 

The typical 20 in 1 card reader takes for each slot one drive letter, if you own a card of this type or not. Under XP one knows which drive letter is assigned to which slot. Since Vista at least the Windows Explorer hides empty slots even the drive letters stay assigned (or lets say wasted).

 

So, let USBDLM remove the drive letters and let it assign one when a card is inserted.

 

[Settings]

NoMediaNoLetter=1

 

To take effect the device in question must be reattached or the USBDLM service must be restarted.

 

NoMediaNoLetter=0 -> no drive

NoMediaNoLetter=1 -> multislot-cardreaders only

NoMediaNoLetter=2 -> singleslot-cardreader too

NoMediaNoLetter=3 -> all 'removable' drives

 

It does not work with floppy drives since there is no media insert notification.

 

There is no reliable procedure to identify "singleslot-cardreaders". USBDLM assumes a removable USB drive being a cardreader when its device name contains characteristic words as "reader", "card" and some others. If your card reader isn't detected as such then either set NoMediaNoLetter=3 or use section [NoMediaNoLetterInclude] (see below).

 

UsbDriveInfo shows if NoMediaNoLetter is active for each removable drive. If it is not then it shows what value is required for NoMediaNoLetter:

 

MountPoint        = T:\

Volume Label      = ---

Volume Size       = no media

Volume Serial     = ---

Volume Name       = \\?\Volume{e5d9c3d5-2df8-11e1-8cd3-001a4d539f5f}\

Partition Name    = \Device\Harddisk9\Partition1

Bus Type          = USB

Drive Type        = removable

NoMediaNoLetter   = no (configure = 3)

 

 

 

Force devices being handled by the "no media no letter" function

 

Sample to force the NoMediaNoLetter feature for an old Iomega ZIP IDE drive and an ATAPI CDROM:

 

[NoMediaNoLetterInclude]

DeviceID1=IDE\DISKIOMEGA_ZIP_100

DeviceID2=IDE\CDROMHL-DT-ST_DVDRRW_GWA-4161B

 

On insertion of a media USBDLM assigns the first free letter. If you want a certain letter, it must be configured like this:

 

[DriveLetters]

DeviceID=IDE\DISKIOMEGA_ZIP_100

Letter=Z

 

[DriveLetters12]

DeviceID=IDE\CDROMHL-DT-ST_DVDRRW_GWA-4161B

Letter=L

 

 

 

Exclude devices from "no media no letter" function

 

To make the "NoMediaNoLetter" function work, the USBDLM service has to register for some notification messages. This is done for all drives types configured in the NoMediaNoLetter value. Some devices make trouble here, they appear to have no media when they are just attached or USBDLM get flooded by wrong removal messages.

 

If a device makes trouble then it can be excluded from being handled by NoMediaNoLetter by it's device ID.

 

Sample to exclude the Apple iPod:

 

[NoMediaNoLetterExclude]

DeviceID1=ven_apple&prod_ipod

 

This is already build in because early iPods first appeared to have on media present and the iTunes software seems to need the iPod's drive letter.

 

Furthermore devices with "Iomega", "ZIP" or "JAZ" are excluded because I think it's just not  appropriate for such floppy like drives but it can be overruled by using [NoMediaNoLetterInclude],see below.

 

"device ID" means an at least 8 characters long part of either the "Drive DevID" or "Ctrl  DevID". The "Friendly Name" as shown by the UsbDriveInfo tool can be used too but the configured name must contain a space. Otherwise the "Friendly Name" might not be determined. Or use Wildcards.

 

DeviceID1 to DeviceID9 and DeviceID can be configured.

 

 

 

Problem 1: Windows Portable Device driver does not start

 

Under Vista, Windows 7 and surprisingly Server 2008 for each USB drive Windows also installs a Windows Portable Device (WPD) driver. But the WPD driver relies on a drive letter for no reason. For drives without a drive letter their WPD driver fails with Code 10 (device cannot start). Ask Microsoft why.

This is not a problem with USBDLM, it is just because a drive having no drive letter assigned.

 

 

Problem 2: Drive no more shown in the "Safely remove hardware" list under Windows 7

 

The Safely remove hardware facility of Windows 7 does not like drives mounted into NTFS folders.

This is again not a problem with USBDLM, it is just because a drive having no drive letter assigned.

 

 

 

 

 

Drive letters come back

 

If the drive letters appear insistently again, then another software is working which checks the drive letters and "repairs" them.

The "U3 launchpad" of U3 flash drives is known for doing so when started (the U3launch.exe on the fake CDROM drive).

This ignorant behaviour is present since U3 was introduced back in 2005.

 

Another software which is known to assign drive letters is "Secure Storage Device SDK" (SSDService.exe) from MXI and "TomTom MyDrive Connect".

 

Too discover which process is changing the drive letters you can use the SysInternals ProcessMonitor:

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

 

Set these filters:

 

Path         contains     DosDevices

Operation    is           RegSetValue

 

In the toolbar leave the registry button pressed, the other three can be deselected.

When a drive letter gets assigned an RegSetValue access should be logged.

 

 

If it is the U3 Launchpad, then here are some Workarounds:

 

Workaround 1: Deactivating U3 by removing the drive letter of the faked CDROM drive

 

[DriveLetters]

DriveType=CDROM

DeviceType=U3

Letter=-

 

 

Workaround 2: No admin privileges for the U3 launchpad, then it cannot assign drive letters. So either work as restricted user or let the U3launch.exe start restricted by USBDLM, like this:

 

[OnArrival]

DriveType=CDROM

FileExists=%drive%\u3launch.exe

open=%drive%\u3launch.exe

restricted=1

 

Or if installed local, remove it from the Windows Startup and let USBDLM start it restricted:

 

[OnUserLogon]

open="%ALLUSERSPROFILE%\Application Data\U3\U3Launcher\LaunchU3.exe"

restricted=1

 

But the current version of the U3 launchpad V1.6 usually does not work without admin privileges. Sometimes this procedure helps:

Remove all USB 'removable' drives. Attach the U3 drive while logged on as Admin. The U3 Launchpad can now batch off its strange installation orgy. Once successfully passed, the launchpad usually works now without admin privileges.

 

BTW: Don't put the U3 data drive on letter A: or B:, the launchpad isn't able to deal with these letters.

 

 

Workaround 3: let USBDLM "fight" against it

 

Actually I expected this U3 bug fixed sooner or later. But three years after the invention of U3 the launchpad it is still not able to distinguish between its own data drive and other USB removable drives. So, let's USBDLM fix it.

 

[Settings]

FightU3Bug=1

 

When drive letter of USB removable drive appear unexpected and within the last 15 Seconds an U3 CDROM has been attached, the new drive letters are removed again. In the Windows Explorer there might be left one or more zombie drives with red question mark. An refresh by pressing F5 removes them.

 

If the U3 Launchpad is installed on the system drive, then it is started thru the Startup folder and does permanently assign drive letters to new USB "removable" drives. Here helps

 

[Settings]

ForceNoMediaNoLetter=1

 

With this setting USBDLM removes drive letters again which are assigned to USB drives without a media present.