Buchstaben abh. von Kriterien

USBDLM

 

LW-Buchstaben abhängig von bestimmten Kriterien


 

Ab V4.0 kann man die Buchstaben abhängig von einer Vielzahl an Kriterien vergeben.

 

Man braucht dann mehrere Abschnitte [DriveLetters], in denen jeweils andere Kriterien definiert sind.

Ab V5.0 ist keine Nummerierung der Abschnitte mehr nötig, funktioniert aber wie gehabt:

Die Abschnitte werden von Nummer 1 an aufwärts bis 99 eingelesen, danach bis zu 100 Abschnitte [DriveLetters] ohne Nummer.

Analog funktioniert das für das Festlegen von Autorun-Ereignissen mittels nummerierter Abschnitte [OnArrival], [OnRemoval], u.a., angepassten Balloontips, u.v.a.

 

Der erste Abschnitt mit passenden Kriterien wird verwendet (und nur dieser). Das bedeutet, dass man immer vom speziellen Fall aufwärts zu den allgemeineren konfiguriert. 

Benutzt man Abschnitts-Nummern dann am besten in 10er-Schritten - dann kann man problemlos mal einen einfügen ohne neu nummerieren zu müssen. Oder ab V5.0 weglassen, dann kann man beliebig umsortieren oder einfügen.

 

UsbDriveInfo analysiert die USBDLM.INI in dem Ordner in dem USBDLM als Dienst registriert ist, wenn das ein anderer Ordner als der eigene ist, gibt's eine Warnung.

UsbDriveInfo zeigt für jedes Laufwerk welche Abschnitte zuständig sind (nach Ändern der INI per F5-Taste aktualisieren) und fertige Kriterien zum Kopieren und Einfügen in die INI. [DriveLetters]:33 heißt z.B. Abschnitt DriveLetters in Zeile 33.

 

      ========== Storage Volume on Disk 1 in Partition 1 ===========

MountPoint        = Z:\

Volume Label      = King16Back

Volume Size       = 15.6 GB  /  14.6 GiB  /  15.619.129.344 Bytes

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

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

INI Sections      = [DriveLetters]:33, [OnArrival]:38

 

          ---------------- USBDLM Criteria -------------------

MinVolumeSize=14G

MaxVolumeSize=16G

MinDriveSize=14G

MaxDriveSize=16G

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

DeviceID=USB\VID_0951&PID_1693\001CC0C60DBDBCC0C000010B

DeviceID=Kingston DataTraveler 111 USB Device

PortName=6-3

PortName=PCI\VEN_8086&DEV_283A&SUBSYS_20AB17AA&REV_03\3&21436425&0&D7-3

VolumeLabel=King16Back

VolumeSerial=A4605DC1

DriveType=REMOVABLE

BusType=USB

PartitionNumber=1

DiskSignature=C3072E18

 

 

Standard-Kriterien sind:

BusType=USB

und

DriveType1=REMOVABLE

DriveType2=FIXED

 

Das heißt, wenn keine Kriterien angegeben werden, ist ein Abschnitt für alle USB-Sticks und USB-Festplatten zutreffend, was dem Verhalten von USBDLM bis V3.x entspricht. Abweichend von V3.x sind Multislot-Cardreader nicht mehr ausgenommen.

 

Gibt man einen anderen BusType bzw. DriveType an, wird die jeweilige Vorgabe natürlich außer Kraft gesetzt.

 

Untypisches Beispiel zum Verdeutlichen der Funktionsweise, Kriterien in grün, Ziel-Buchstaben in violett:

 

[DriveLetters]

DeviceID=USB\VID_067B&PID_2517

DeviceID=USB\VID_1234&PID_5678

Letter=X

Letter=Y

 

Dieser Abschnitt wird benutzt, wenn ein Laufwerk mit der Geräte-ID USB\VID_067B&PID_2517 oder USB\VID_1234&PID_5678 angeschlossen wurde. Dem Laufwerk wird dann X: zugeordnet falls frei, sonst Y:. Sind beide Buchstaben belegt, wird der erste freie Buchstabe zugeordnet. Soll in diesem Fall kein Buchstabe zugeordnet werden, konfiguriert man noch Letter3=-

 

Typisches Beispiel um o.g. Laufwerke auf je einem Buchstaben zu haben:

 

[DriveLetters]

DeviceID=USB\VID_067B&PID_2517

Letter=X

 

[DriveLetters]

DeviceID=USB\VID_1234&PID_5678

Letter=Y

 

Sprich, für jedes Laufwerk dass eine abweichende Behandlung erfahren soll, braucht's einen eigenen Abschnitt.

 

 

 

Weitere Beispiele:

 

1. FireWire-Laufwerke auf F, USB-Laufwerke ab 10GB auf U, alle anderen USB-Sticks- und Platten auf W oder Z:

 

;FireWire auf F:

[DriveLetters]

BusType=FireWire

Letter=F

 

;USB >10GB auf U:

[DriveLetters]

MinDriveSize=10GB

Letter=U

 

;alle übrigen USB-Laufwerke auf W: oder Z:

[DriveLetters]

Letters=W, Z

 

 

2. USB-Multislot-Cardreader auf L, M, N, O; alle anderen USB-Sticks- und Platten auf W oder Z:

 

;MultiSlotCardReader auf L:, M:, N: und O:

[DriveLetters]

DeviceType=MSCR

Letters=L,M,N,O

 

;alle übrigen USB-Laufwerke auf W: oder Z:

[DriveLetters]

Letters=W,Z

 

 

Es können auch mehrere Kriterien gleichen Typs - dann nummeriert - angegeben werden. Davon muss dann eines passen.

Auch mehrere Kriterien verschiedenen Typs sind möglich - dann muss ein Eintrag jeden Typs passen.

 

Bsp: USB- und FireWire-Laufwerke ab 10GB auf F:

 

[DriveLetters]

BusTypes=USB, FireWire

MinDriveSize=10GB

Letter=F

 

Bsp: CF-Karten im PCMCIA-Slot auf P:

 

[DriveLetters]

BusType=ATA

DeviceID=PCI\VEN_1217&DEV_7135

Letter=P

 

 

Sowas funktioniert nicht:

 

;USB-Festplatten auf K oder L:

[DriveLetters]

DriveType=fixed

Letters=K,L

 

;eine bestimmte USB-Festplatte auf I:

[DriveLetters]

DriveType=fixed

DeviceID1=USBSTOR\DISK&VEN_WDC_WD20&PROD_00BB-00GUA0

Letters=I

 

Warum? Der erste Abschnitt "fängt" alle USB-Platten ein, der zweite Abschnitt kommt deshalb nie zum Zuge.

 

Deshalb immer vom speziellen Fall aufwärts zu den allgemeineren konfigurieren. 

 

 

Die verschiedenen Kriterien sind in den folgenden Abschnitten beschrieben, hier eine übersicht:

 

  • MinVolumeSize            Mindestgröße des Volumes
  • MaxVolumeSize            Maximalgröße des Volumes
  • MinDriveSize             Mindestgröße des gesamten Laufwerks
  • MaxDriveSize             Maximalgröße des gesamten Laufwerks
  • DeviceID                 Geräte-ID des Volumes, des Laufwerks, des Controllers oder der "Friendly Name"
  • PortName                 Name des USB-Ports, z.B. 3-1
  • VolumeLabel (*)          Datenträgerbezeichnung
  • VolumeSerial             Seriennummer des Volumes
  • DriveType                z.B. REMOVABLE, FIXED, CDROM, FLOPPY, RAMDISK
  • DeviceType               z.B. MSCR, TrueCrypt, BitLocker
  • BusType                  z.B. USB, FireWire, ATA, ATAPI, SCSI
  • PartitionNumber          Partitionsnummer
  • DiskSignature            Disk-Signatur
  • FileExists (*)           Vorhandensein einer Datei
  • FileNotExists (*)        Nichtvorhandensein einer Datei
  • DirExists (*)            Vorhandensein eines Verzeichnisses
  • DirNotExists (*)         Nichtvorhandensein eines Verzeichnisses
  • UserName                 Nutzername des angemeldeten Nutzers
  • UserGroup                Nutzergruppenname des angemeldeten Nutzers
  • UserIsAdmin              1 wenn Nutzer ein Admin ist, sonst 0
  • ComputerName             Computer-Name, z.B. für einheitliche USBDLM.INI aber unterschiedliches Verhalten abh. vom Computer
  • ProcessIsRunning         Ein bestimmter Prozess läuft
  • ProcessIsNotRunning      Ein bestimmter Prozess läuft nicht
  • OsVersion                Eine minimale oder maximale Betriebssystem-Version

 

(*) kann zu Verzögerungen führen oder ganz fehlschlagen, da dafür das Dateisystem fertig eingebunden sein muss; normalerweise problemlos

 

Hinweis: Frei erfundene Kriterien funktionieren nicht.