Gorasuhl schrieb:
Dahinter steckt aber eigentlich ein, auf den Controller vom Scanner angepasster, individueller Treiber, an den man noch ein Stück Code gepackt hat, damit der über TWAIN lediglich angesprochen werden kann. Habe ich das jetzt so richtig interpretiert?
Ja, TWAIN besteht aus zwei bis drei Schichten:
(1) Die Anwendung, die mittels TWAIN Interface von Windows den passenden TWAIN Treiber auswählt und das Erfassen des Bildes über einen API-Aufruf startet.
(2) Wenn implementiert, eine GUI, mit der man die HW-Eigenschaften des Scanners über (3) ausnutzen kann. Wenn nicht implementiert, wird nur die "Standardeinstellung" genutzt, die (3) für sinnvoll hält.
(3) Der eigentlichte HW-Treiber, der auf Basis der Auswahl in (2) die HW parametriert (Auswahl Durchlicht oder Auflage, Belichtung, Auflösung usw.), das Bild einliest und es an Schicht (2) überträgt. Das geschieht hier per USB, früher auch gerne per SCSI, SaneTwain kann aber auch einen Scnaner ansteuern, der im Netzwerk an einem Sane-Server unter Linux angeschlossen ist.
Gorasuhl schrieb:
Und Windows XP lädt dann irgendeinen zum Controller passenden Treiber, der in dem Fall halt zufällig auch TWAIN unterstützt hat, richtig?
Wie Du schon geschrieben hattest, war TWAIN seit mind. Win 3.1 bis zur Erfindung von WIA die von MS vorgegebene Schnittstelle zur Anbindung von Scannern und anderen Bilderfassungsgeräten. Allgemein fragt Windows bei jeder USB-HW mittels generischem USB-Protokoll die USB Id ab. Siehe die Spalte "USB id" für "CanoScan D646U" im obigen Sane-Link. Danach sucht MS in seiner Datanbank nach einem zur USB-Id passenden Treiber und installiert ihn entweder direkt oder lädt ihn von seiner Webseite. Vergleichbares gilt auch für jegliche PCI(e) Hardware.
Wenn MS nichts findet, gibt es für einige HW generische Treiber. Das liegt dann aber daran, dass die HW wirklich generisch ansprechbar ist. So z.B. bei Grafikkarten, die zur Not ohne HW Beschleunigung in 2D mit VESA Auflösungen nutzbar sein können (sonst würde kein moderner Installer von Windows laufen). Für Scanner ist mir sowas nicht bekannt und ich fände es sehr seltsam, dass gerade der Scanner so generisch arbeiten sollte, Linux ihn aber nicht ans Laufen bekommt.
lowrider20 schrieb:
Gerne mögen die Treiber VOR Anschluss des Geräts installiert sein. Welche Software?
Gerade TWAIN Treiber bieten mit der Hersteller-SW oft mehr Auswahlmöglichkeiten (obige Schicht (2)).
Das "vor Anschluss" ist entweder MS oder der Hersteller der HW Schuld. Wenn MS mit der USB Id ein anderes Gerät identifiziert und den falschen Treiber installiert, dann kann es schwierig werden, den Treiber im Nachhinein auszutauschen. Je nach falschem Treiber mag sogar Windows einfach abstürzen (beim Scanner sehr unwahrscheinlich). Genauso, wie das gut ein Jahrzehnt lang der Fall war, wenn man ein laufendes Windows von Intel auf AMD umziehen wollte.
lowrider20 schrieb:
Aber nicht alle Drucker betraf das.
Einige der Druckersprachen sind einerseits offen dokumentiert (z.B. HP PCL5/6) und dazu weit verbreitet oder von MS selber erfunden (GDI Drucker). Dafür stellt MS dann auch Treiber zur Verfügung. Trotzdem kann mein HP Color Laserjet mit dem Treiber von MS viel weniger wie mit dem von HP.