Laufwerks-Buchstaben abhängig vom Geräte-Typ
Der Geräte-Typ ist etwas USBDLM-spezifisches, um spezielle Geräte gesondert behandeln zu können.
Definiert sind:
- MSCR -> Multislot-Cardreader (ist immer auch CardReader)
- CardReader -> Laufwerke mit charakteristischen Zeichenketten im Name, wie "Card" oder "Reader"
- U3 -> U3-Stick oder eine Festplatte mit virtuellem CDROM, z.B. für Verschlüsselungs-Software
- Floppy -> Disketten-Laufwerk
- VirtualDrive -> Laufwerk, das kein vollwertiges Volume ist, z.B. Subst-, Netz, TrueCrypt-Laufwerke
- SubstDrive -> Subst-Laufwerk
- DokanDrive -> Virtuelles Laufwerk, erzeugt durch Hiroki Asakawas "user-mode file system library"
- TrueCrypt -> Volume dass im ersten Sektor Zufallsdaten enthält, also warscheinlich ein Container für TrueCrypt oder einer anderen Verschlüsselungs-Software ist (z.B. VeraCrypt, FreeOTFE)
- ReadSharingViolation -> Laufwerk beim dem das Lesen mit ERROR_SHARING_VIOLATION fehlschlägt, z.B. ein bereits gemounteter TrueCrypt-Container
- TrueCryptVolume -> ein gemountetes TrueCrypt-Laufwerk
- VeraCryptVolume -> ein gemountetes VeraCrypt-Laufwerk
- OtfeVolume -> ein gemountetes OTFE-Laufwerk
- BitLocker -> ein BitLocker-Volume
- AllZero -> erster Sektor enthält nur Nullen (unformatiert oder Nicht-Windows-Laufwerk)
- ReadError -> Vom Laufwerk konnte nicht gelesen werden
- UnrecognizedVolume -> Windows sagt ERROR_UNRECOGNIZED_VOLUME, z.B. Ext3-Laufwerk
- WindowsRecovery -> Windows Recovery-Partition (Partitions-Typ 0x27 oder PARTITION_MSFT_RECOVERY_GUID bei GPT)
UsbDriveInfo zeigt den oder die zutreffenden Geräte-Typen an.
VirtualDrive, SubstDrive, DokanDrive, TrueCryptVolume, VeraCryptVolume, OtfeVolume betreffen nur virtuelle Laufwerke und sind somit in DriveLetters-Abschnitten nicht sinnvoll.
Beispiel für Multislot-Cardreader auf L, M, N, O
[DriveLetters]
DeviceType=MSCR
Letters=L,M,N,O
Beispiel für Multislot-Cardreader in ein NTFS-Verzeichnis und Nutzung des Geräte-Names:
[DriveLetters]
DeviceType=MSCR
Letter1=C:\CardReader\%DevName%
Unter C:\CardReader (der Ordner wird ggf. angelegt) werden dann Ordner anhand der Gerätenamen der Slots angelegt, z.B. 'USB2.0 CF_MD', 'USB2.0 SD_MMC' usw., vorausgesetzt, der Reader hat für seine Slot 'sprechende' Gerätenamen wie die eben genannten. Oft heißen alle Slots gleich, z.B. 'USB USB', 'Generic USB' oder 'General Flash Disk' - dann hängt USBDLM notgedrungen Ziffern an, wenn es der letzte konfigurierte Mountpunkt ist, sonst wird der nächste probiert.
USBDLM erkennt einen Multislot-Cardreader als solchen, wenn er drei oder mehr Slots hat. Außerdem werden USB-Reader mit zwei Slots als Multislot-Cardreader erkannt, wenn sie CardReader erkannt werden, also charakteristische Namen haben.
Nicht-USB-Cardreader, wie sie oft in neueren Laptops anzutreffen sind, werden standardmäßig nicht behandelt. Das lässt sich aber über die Geräte-ID erzwingen.
Beispiel für Laptop-SD-Reader mit BusType SCSI
[DriveLetters]
DeviceID=PCI\VEN_1217&DEV_7120
Letters=F,G
Beispiel zum Verstecken von Laufwerken, die als TrueCrypt-Container genutzt werden:
[DriveLetters]
DeviceType1=TrueCrypt
DeviceType2=ReadSharingViolation
Letter1=-
Die Erkennung von TrueCrypt-Containern funktioniert nur solange TrueCrypt das Volume noch nicht gemountet hat, da TrueCrypt sich exklusiven Zugriff gönnt und USBDLM den Container dann nicht mehr testen kann. Das Container-Laufwerk bekommt dann ersatzweise den DeviceType ReadSharingViolation.
Beispiel zum Verstecken von U3-AutoRun-CD-ROMs:
[DriveLetters]
DriveType=CDROM
DeviceType=U3
Letter1=-
"U3 ist ein Standard für USB-Sticks, der es erlaubt, auf einem USB-Stick alle Einstellungen, Programme und Daten zu speichern, so dass ein Anwender auf Fremd-Rechnern arbeiten kann, ohne auf diesem Spuren davon zu hinterlassen." Dazu soll beim Anschließen des Stick automatisch das 'U3-Launchpad' starten - ein Startmenü, das sich im Systray einnistet. Da Windows XP die Zeile open= in der autorun.inf aber nur auf CD-ROM-Laufwerken standardmäßig ausführt, hat man U3-Sticks kurzerhand ein zusätzliches virtuelles CD-ROM-Laufwerk mit einer autorun.inf und dem U3-Startprogramm verpasst. Das ist das oben genannte 'U3-Autorun-Laufwerk'. Tolle Lösung, die gerechterweise ab Vista nicht mehr ohne Rückfrage funktioniert.
Will man davon nichts wissen, konfiguriert man einfach 'kein Laufwerksbuchstabe' als Mountpunkt, wie oben gezeigt. Dann geht dafür kein Autorun mehr und es wird kein Laufwerksbuchstabe verschwendet.
USBDLM sieht alles als U3 was ein CDROM und ein normales Laufwerk auf einem USB-Gerät vereint. So findet sich ein virtuelles CDROM auch auf Laufwerken mit Verschlüsselungs-Funktion oder auf Werbe-Sticks.
Will man das CD-ROM von U3-Sticks loswerden, aber das einer Festplatte behalten, muss man dieses virtuelle CD-ROM in einem Abschnitt mit niedrigerer Nummer abfangen:
[DriveLetters]
DeviceID=DeviceID des CDROM-Laufwerks
DriveType=CDROM
DeviceType=U3
Letter=R
Um einen U3-Stick in einen normalen zu verwandeln, bietet U3 übrigens ein Uninstall-Tool an:
Damit kann man auch seine eigene ISO-Datei zum U3-Autorun-Laufwerk machen. Ein grandioses Einfallstor für Schadsoftware auf zum zufällig finden hinterlassenen USB-Sticks...
U3-Sticks gibt's inzwischen kaum noch, mit dem passenden "Factory Tool" kann man aber vielen Sticks einen CDROM-Teil verpassen.