Kein Medium, kein Buchstabe

USBDLM

 

Kein Medium, kein Buchstabe


 

Der typische 20 in 1 Cardreader verbrät für jeden Karten-Slot einen kostbaren Laufwerks-Buchstaben - ob man eine Karte dafür besitzt oder nicht. Und man weiß eh nie, welcher Buchstabe zu welchem Slot gehört. Also weg mit den Buchstaben und genau dann einen zuordnen, wenn ein Medium eingelegt wird:

 

[Settings]

NoMediaNoLetter=1

 

Um wirksam zu werden, muss das betreffende Gerät neu angeschlossen oder der USBDLM-Dienst neu gestartet werden.

 

 

Unterstützt werden standardmäßig nur Wechseldatenträger, aber keine Floppys oder CD-ROMs. Außerdem sind Geräte ausgeschlossen, die "Iomega" und "ZIP" oder "JAZ" enthalten, da für solche floppy-artigen Laufwerke NoMediaNoLetter nicht angemessen wäre. Mit echten Floppy-Laufwerken funktioniert das Ganze überhaupt nicht, das diese keine Benachrichtigungen beim Einlegen und Entfernen einer Diskette generieren.

 

NoMediaNoLetter=0 -> kein Laufwerk

NoMediaNoLetter=1 -> nur Multislot-Cardreader

NoMediaNoLetter=2 -> auch Singleslot-Cardreader

NoMediaNoLetter=3 -> alle Wechseldatenträger

 

Singleslot-Cardreader lassen sich nicht sicher erkennen. USBDLM versucht es anhand einiger charakteristischer Zeichen im Gerätenamen, wie "card", "reader" und einigen anderen. Wenn ein Kartenleser nicht als solcher erkannt wird, entweder NoMediaNoLetter=3 setzten oder einen Abschnitt [NoMediaNoLetterInclude] nutzen, siehe unten.

 

UsbDriveInfo zeigt, ob NoMediaNoLetter für einen Wechseldatenträger wirksam ist oder nicht. Falls nicht, zeigt es was für NoMediaNoLetter konfiguriert werden muss:

 

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)

 

 

 

NoMediaNoLetter für bestimmte Geräte erzwingen

 

Beispiel für ein altes Iomega IDE ZIP-Drive und ein ATAPI-CDROM:

 

[NoMediaNoLetterInclude]

DeviceID=IDE\DISKIOMEGA_ZIP_100

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

 

Beim Einlegen eines Mediums ordnet USBDLM dann den ersten freien Buchstaben zu. Soll es ein bestimmter sein, muss man ihn entsprechend konfigurieren:

 

[DriveLetters]

DeviceID=IDE\DISKIOMEGA_ZIP_100

Letter=Z

 

[DriveLetters]

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

Letter=L

 

 

Geräte von NoMediaNoLetter ausschließen

 

Mit manchen Geräten gibt es Probleme: USBDLM wird dann mit Nachrichten geflutet oder es nimmt einem Gerät den Buchstaben weg, weil es zunächst wie ohne eingelegten Datenträger erscheint.

Anhand der Geräte-ID kann man Geräte ausschließen.

 

Beispiel zum Ausschließen des Apple iPod:

 

[NoMediaNoLetterExclude]

DeviceID=ven_apple&prod_ipod

 

Das ist bereits fest eingebaut, weil die iTunes Software auf den Laufwerksbuchstaben schaut.

 

 

 

 

Problem: Geräte die nicht starten unter Vista und Windows 7

 

Für USB-Wechseldatenträger installieren Vista, Windows 7, 8 und überraschenderweise auch Windows 2008 Server (R2) immer auch ein "WPD Dateisystem". WPD steht für "Windows Portable Device", eine Programmierschnittstelle für Geräte wie MP3-Player, Handys u.a.

Wenn ein USB-Wechseldatenträger keinen Laufwerksbuchstaben hat (egal ob USBDLM den entfernt oder ob der Nutzer es manuell erledigt), schlägt der Start des Treibers mit "Code 10" fehl. Macht aber nichts: Als normaler Datenträger funktioniert das Laufwerk trotzdem.

Wenn man den WPD-Kram komplett loswerden will, kann man den Dienst "Enumeratordienst für tragbare Geräte" (WPDBusEnum) deaktivieren. Nebeneffekt: Der Windows Media Player synchronisiert sich dann nicht mehr mit USB-Massenspeichern. Und USB-Geräte die nur WPD verstehen funktionieren natürlich nicht mehr...

 

Ab Windows 8.1 gibt's das Problem nicht mehr.

 

 

 

Buchstaben kommen immer wieder

 

Tauchen die Buchstaben hartnäckig immer wieder auf, ist eine andere Software am Werk, die die Buchstaben bei passender Gelegenheit überprüft und ggf. zuordnet.

Bekannt dafür ist das U3 Launchpad auf U3-Sticks (die LaunchU3.exe auf dem Pseudo-CDROM).

Weitere Software die grundlos Laufwerksbuchstaben zuordnet ist das "Secure Storage Device SDK" (SSDService.exe) von MXI sowie "TomTom MyDrive Connect".

 

Mit dem SysInternals ProcessMonitor kann man ermitteln, welcher Prozess Laufwerksbuchstaben zuordnet:

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

 

Folgende Filter sollte man setzten:

 

Path         contains     DosDevices

Operation    is           RegSetValue

 

Dann in der Werkzeugleiste rechts den Registry-Button gedrückt lassen, die anderen drei kann man abwählen.

Wenn die Buchstaben dann wieder aufgetaucht sind, sollten kurze Zeit später Zugriffe protokolliert worden sein.

 

 

Falls das U3-Launchpad schuld ist, bieten sich folgende Workarounds an:

 

Workaround 1: U3 lahmlegen, indem man dem gefälschten CDROM den Buchstaben wegnimmt:

 

[DriveLetters]

DriveType=CDROM

DeviceType=U3

Letter=-

 

 

Workaround 2: Keine Admin-Rechte für das U3-Launchpad

 

Ohne Admin-Rechte kann es keine Laufwerksbuchstaben ändern. Entweder als "Eingeschränkter Nutzer" arbeiten, oder das U3-Launchpad ohne Admin-Rechte starten - das kann USBDLM erledigen:

 

[OnArrival]

DriveType=CDROM

FileExists=%drive%\u3launch.exe

open=%drive%\u3launch.exe

restricted=1

 

Oder falls lokal installiert, aus dem Windows Autostart entfernen und durch USBDLM starten lassen:

 

[OnUserLogon]

open="%ALLUSERSPROFILE%\Anwendungsdaten\U3\U3Launcher\LaunchU3.exe"

restricted=1

 

Die aktuelle Version 1.6 des U3-Launchpads funktioniert meist nicht ohne Admin-Rechte und kommt mit einer unsinnigen Fehlermeldung. Hier hilft es manchmal, alle USB-Wechseldatenträger zu entfernen und das U3-Launchpad mit Admin-Rechten auszuführen. Es kann dann seine merkwürdige Installations-Orgie durchziehen und ab dann hoffentlich auch ohne Admin-Rechte arbeiten.

Den Daten-Teil sollte man übrigens nicht auf A:, B: oder gar einen NTFS-Ordner legen, damit ist U3-Launchpad auch überfordert.

 

 

Workaround 3: USBDLM dagegen "kämpfen" lassen

 

Eigentlich hatte ich fest damit gerechnet, dass das unsinnige Verhalten der U3-Software irgendwann behoben wird, aber da es die U3-Entwickler auch nach fünf Jahren offenbar nicht in der Lage sind, das eigene Laufwerk von anderen USB-Wechseldatenträgern zu unterscheiden, muss USBDLM es eben richten:

 

[Settings]

FightU3Bug=1

 

Wenn Laufwerkbuchstaben von USB-Wechseldatenträgern unerwartet zugeordnet werden und innerhalb der vergangenen 15 Sekunden ein U3-CDROM angeschlossen wurde, entfernt USBDLM die Buchstaben sofort wieder.

Im Windows-Explorer bleibt dann oft je eine Laufwerks-Leiche mit rotem Fragezeichen zurück. Mit F5 aktualisieren schafft Abhilfe.

 

Das U3 Launchpad kann sich auch auf das Systemlaufwerk kopieren (unter "All Users\U3") und in den Autostart eintragen. Bei jedem Anschließen eines USB-Wechseldatenträgers ordnet es einen Laufwerksbuchstaben zu, falls nicht vorhanden. Hier hilft dann nur:

 

[Settings]

ForceNoMediaNoLetter=1