Als erstes, das ist im allgemeinem keine Einschränkung des Betriebssystems.
Ein Treiber ist in der Regel nichts anderes als eine DLL (oft mit anderer Endung *.sys *.drv ...)
Unabhängig davon ob der Treiber im KERNAL user USER "Space" läuft
können meherere Applikationen den gleichen Treiber zur selben Zeit benutzen
z.B. können fast beliebig viele Programme die selbe Soundkarte bzw. dessen Treiber benutzen.
Für den Programmierer eines Treibers heißt dies das immer wenn OpenDevice() aufgerufen wird
eine neue Instance erstellt werden soll.
In Deinem Beispiel sollen aber nicht viele Programme sich ein Gerät teilen
sondern ein Programm benutzt viele Geräte.
Wenn das OS bemerkt das z.B. eine USB Kamera angeschlossen wurde wird dieses Gerät am USB BUS Enumeriert also die Endpunkte abgefragt.
(Abgefragt wer bist Du was kannst Du was brauchst DU)
Auf Grund des Ergebnisses dieser Abfrage wird der Passende Treiber geladen und eine Applikation kann dieses Gerät "ansprechen".
Wird nun ein zweites,drittes Gerät mit gleichen Eigenschaften Enumeriert dann wird der Treiber
nicht nochmal geladen.
Es wird dem Treiber(programmierer) überlassen wie er weitere baugleiche Geräte behandelt.
Wenn in Deinem Beispiel der Treiber mehr als ein Gerät unterstützt dann gibt es nur zwei Gründe warum nicht auch noch ein drittes oder mehr.
1) Vielleicht hat der Programmierer absichtlich, aus welchen Gründen auch immer, die Anzahl auf zwei beschränkt
oder bei der Entwicklung des Treibers nie mehr als zwei Geräte gleichzeitig getestet. (MAX_INSTANCES = 2)
(Könnte also durch einen Poke im Treiber überschrieben werden z.B. mit einem Hexeditor wenn man die genaue Adresse in Erfahrung bringen könnte)
2) Oder ganz einfach Dein USB BUS erlaubt kein drittes Gerät weil dann mehr als 500mA Strom gezogen würde oder die Maximale BUS Geschwindigkeit nicht ausreicht.
Im ersten Fall solltest Du den Hersteller eine eMail schicken vielleicht haben die einfach nicht mehr als zwei Kameras getestet. (Wozu auch
)
Wenn Es mit dem USB BUS zusammen hängt dann
könnte ein zweiter HUB mit eigener Stromversorgung eine Lösung sein.
Ich selber habe z.B. für Banken vor einigen Jahren Multimedia Steuerungen gewerblich entwickelt bei z.B. 16 zu überwachenden Kammeras
nimmt man eine hochleistungs PCI Karte die hat dann z.B. 16 Eingänge und man kann einzelne Videoquellen als Vollbild
oder alle 16 Kanäle als Miniaturen auf dem Desktop darstellen und auch aufnehmen.
Für Dein Kegelbahn Projekt wäre eine günstige Karte mit 4 Channels genau das richtige gewesen.
Da es aber unbedingt USB sein soll wünsche ich Dir viel Glück bei der Lösungsfindung.
Grüsse Joshy
EDIT:
Kannst ja mal zum Testen ein Programm schreiben welches immer nur eine (die nächst freie) Kamera benutzt
und dieses Programm drei mal ausführen.
Oder zwei Kameras via VFW und die dritte via DirectShow (oder anders herum) benutzen.
EDIT 2:
Ich sehe an Deiner Forumssignatur das Du z.Z. mit Win7 64 Bit unterwegs bist.
Handelt es sich bei dem Treiber um einen "echten" 64 Bit WIN 7 Treiber ?
Wenn nicht könnte es ja auch sein das der 32 Bit Treiber in einer art Emulationsmodus läuft
und vielleicht daher es eine Beschränkung auf zwei gibt.
(ach was weiss ich schon, ich habe kein 64Bit WIN 7)