Buchstaben abh. vom USB-Port

USBDLM

 

LW-Buchstaben abhängig vom USB-Port


 

Das Ganze ist etwas unhandlich zu konfigurieren, z.B. so:

 

[DriveLetters]

PortName=3-2

Letters=U,R

 

;für mehrere Ports, z.B. alle an einem Hub der an 5-1 hängt

[DriveLetters]

PortName1=5-1-1

PortName2=5-1-2

PortName3=5-1-3

PortName4=5-1-4

Letters=X

 

Oder kurz unter Nutzung von Wildcards beim PortName:

 

[DriveLetters]

PortName=5-1-?

Letters=X

 

Den Portnamen muss man sich erstmal ermitteln: Dazu an die betreffenden Ports ein USB-Laufwerk anschließen und UsbDriveInfo starten, wo man dann die Port-Namen ablesen kann. UsbDriveInfo gibt für jedes USB-Laufwerk sowas aus:

 

MountPoint        = Z:\

Volume Label      = King16Back

Volume Size       = 15.6 GB  /  14.5 GiB  /  15.619.129.344 Bytes

Volume Serial     = A460-5DC1

FileSystem BS     = NTFS

Volume Name       = \\?\Volume{09247b47-82df-11e4-b297-001d729ad2b2}\

KernelName        = \Device\HarddiskVolume21

Partition Device  = \\.\Harddisk1Partition1

DeviceID          = STORAGE\VOLUME\_??_USBSTOR#DISK&VEN_KINGSTON&PROD_DATATRAVELER_111&REV_PMAP#...

DeviceID Drive    = USBSTOR\DISK&VEN_KINGSTON&PROD_DATATRAVELER_111&REV_PMAP\001CC0C60DBDBCC0C000010B&0

DeviceID USB      = USB\VID_0951&PID_1693\001CC0C60DBDBCC0C000010B

Device ID HostCtl = PCI\VEN_8086&DEV_283A&SUBSYS_20AB17AA&REV_03\3&21436425&0&D7

USB Friendly Name = Kingston DataTraveler 111

USB Port Name     = 3-2

INI Sections      = [DriveLetters]

 

Für den Port, an dem dieses Laufwerk angeschlossen ist, wäre die Einstellung für 'PortName' 3-2.

Wenn noch ein USB-Hub dazwischen ist, wäre ein typischer Port-Name 3-2-1, bei zwei Hubs 3-2-1-1 usw.

7-Port-Hubs sind manchmal zwei hintereinander geschaltete 4-Port-Hubs - dann nicht wundern, wenn bei 4 Ports ein Glied mehr als erwartet in der Kennung steht. 10-Port-Hubs können ein 7-Port-Hub plus 4-Port-Hub sein.

Ein-Port-Hubs werden ab V4.4 mitgezählt, z.B. eventuell manche aktive USB-Verlängerung, die ich bisher gesehen habe, waren 4-Port-Hubs bei denen nur ein Port herausgeführt wurde.

 

USB3-Controller haben separate logische Ports für USB1/2 und 3-Geräte, so dass sich die Portnummer unterscheidet, je nachdem, ob ein USB1/2- oder 3-Gerät angeschlossen ist, siehe hier: http://www.uwe-sieber.de/usbtreeview.html#USB3

Das ist aber nur bei Root-Hubs der Fall, bei normalen USB-Hubs gibt es dieses Doppelleben nicht.

 

Beispiel, um an einem USB3-Port den Buchstaben X: zu bekommen, egal, ob ein USB1/2- oder 3-Gerät angeschlossen wird:

 

[DriveLetters]

PortName1=3-2

PortName2=3-5

Letters=X

 

Die erste Nummer im Port-Namen ist die des Root-Hubs. USBDLM nutzt hier die Position des Root-Hubs in der Liste die Windows meldet. Diese Nummer ist leider nicht konstant, bei mehreren Windows-Installationen auf einem Rechner kann es schon Unterschiede geben. Ebenso kann sich die Nummer eines Root-Hubs ändern, wenn ein USB-Host-Controller hinzugefügt oder entfernt wird.

Wenn man dieses Problem hat (z.B. mit einem PCMCIA-USB-Controller), kann man auf die "lange" Notation zurückgreifen. Hier wird die Nummer des Root-Hubs durch die Geräte-ID seines Host-Controllers ersetzt, der Rest bleibt gleich.

Im Beispiel oben war die Device-ID des Host-Controllers PCI\VEN_8086&DEV_283A&SUBSYS_20AB17AA&REV_03\3&21436425&0&D7.

 

Der sich ergebende lange Portname wäre somit PCI\VEN_8086&DEV_283A&SUBSYS_20AB17AA&REV_03\3&21436425&0&D7-2.

Wenn immer nur einen Hostcontroller mit dieser ID im System gibt, kann man per Wildcard kürzen, etwa so:

 

[DriveLetters]

PortName=PCI\VEN_8086&DEV_283A&*-2

Letters=X

 

 

Nicht-USB-Laufwerke

 

Ab V4.7 funktioniert das auch mit Laufwerken, die eine "Location" verfügen, sowas wie "Channel 1, Target 0, Lun 0". USBDLM generiert daraus dann eine Kurznotation indem es die Ziffern herauspickt, z.B. 1-0-0.

Typischerweise haben ATAPI-, SCSI- und SATA-Laufwerke so eine Location. Alternativ kann auch die "Location" so wie von UsbDriveInfo angezeigt verwendet werden, inklusive Wildcards.

Nicht vergessen auch einen BusType zu konfigurieren, da es ja keine USB-Laufwerke sind!

 

Beispiel für ein ATAPI CD/DVD-Laufwerk auf X:

 

[DriveLetters]

DriveType=CDROM

BusType=ATAPI

PortName=Bus Number 0, Target ID 1, LUN 0

Letters=X

 

Oder mit der Kurznotation für den Port:

 

[DriveLetters]

DriveType=CDROM

BusType=ATAPI

PortName=0-1-0

Letters=X