Die Antreiber – Grundlagen zu den Windows-Gerätetreibern

22. Oktober 2011

Im Rahmen fast jeder Installation ist der Administrator dazu aufgefordert für die entsprechenden Hardwarekomponenten auch die richtigen Treiber einzuspielen. Doch wie geht Windows bei der Suche nach Treibern eigentlich genau vor? Wie unterscheiden sich Treiber und ist eine Treiberaktualisierung wirklich stets erforderlich? Unser Autor veranschaulicht die Grundlagen und gibt Antworten auf diese wichtigen Fragen, die jeden Systemverwalter beschäftigen.

Bild 1. Microsoft Windows besitzt bereits bei Auslieferung für viele hunderte von Geräten die passenden Treiber. Alle nachträglich installierten Treiber werden zwischengespeichert. Die Systeme Windows XP/2003 verwendeten für die eigenen Treiber noch eine CAB-Datei.
Bild 2. Die INF- und PNF-Dateien: In diesen Textdateien zu den Treiber ist genau festgelegt, für welche Hardware ein Treiber zu nutzen ist und welche Softwarekomponenten im Rahmen der Einrichtung zu kopieren sind.

Gerätetreiber sind für den Betrieb von Windows-Systemen absolut unverzichtbar. Ohne den korrekten Treiber ist das Betriebssystem nicht in der Lage eine Hardwarekomponente richtig oder im vollen Umfang anzusprechen. Für alle Geräte, die nicht direkt über die bekannten BIOS-Adressen, beispielsweise ein Diskettenlaufwerk, Tastatur oder der Timer angesprochen werden können, ist eine Treibersoftwarekomponente erforderlich. Sie teilt dem Betriebssystem dann mit, wie auf das Gerät zugegriffen werden kann.

Im Gegensatz zu den meisten Anwendungen, die im User-Mode (Ring 3) des Betriebssystems ausgeführt werden, finden sich die meisten Gerätetreiber auf dem Ring 0, im sogenannten Kernel-Mode. Wirft man einen Blick in die Historie von Windows, so wird deutlich, dass dies nicht immer so war. Unter Windows NT 3.51 befand sich zum Beispiel das gesamte Grafiksystem im Win32-Subsystem, einer Kernkomponente auf der User-Mode Ebene.

Ein Umschalten zwischen User- und Kernel-Mode ist für den Prozessor jedoch eine zeitaufwändige Prozedur, die über mehrere Takte dauert. Aus Gründen der Performance wurde das grafische Subsystem, das beinhaltet auch das GDI-Drucksystem, mit Windows NT 4.0 in den Kernel-Mode verlegt. Kernelmode-Treiber sind insgesamt deutlich sensibler als Programme, die im User-Mode ausgeführt werden können. Der Grund dafür ist einfach – ein nicht korrekt arbeitender Treiber im User-Mode kann vom Betriebssystem jederzeit beendet werden, ohne dass andere Softwarekomponenten davon in Mitleidenschaft gezogen werden. Das gilt nicht für die Treiber, die im Kernel-Modus aktiv sind.

Alles wird anders — Quo Vadis Druckertreiber?

Seit Windows 2000 sind insbesondere die Druckertreiber wieder in den User-Mode umgelagert worden. Windows Server 2003 verhinderte in der Standardeinstellung die Verwendung von Kernel-Mode-Druckertreibern. Der entsprechende Eintrag kann jedoch vom Administrator per lokaler Richtlinie oder Gruppenrichtlinie umgestellt werden. Im Gegensatz dazu ist der Einsatz von Kernel-Mode-Druckertreiber auf Windows XP-Rechnern in der Standardeinstellung durchaus möglich. Seit Windows Vista/2008 sind nur noch Druckertreiber im User-Modus verwendbar! Mit der Einführung von Windows 7 und Windows Server 2008 R2 werden vom Benutzer zudem Administrationsrechte bei der Einrichtung von Druckertreibern verlangt, sofern diese Treiber nicht mit einem Zertifikat signiert sind.

Da sich aber leider viele Druckerhersteller, insbesondere bei kostengünstigeren Druckermodellen, diese Zertifizierung sparen, kann diese Einstellung mitunter zu Schwierigkeiten führen. Im Microsoft Technet können  sich Administratoren in einem Beitrag darüber informieren, welche Anpassungen sie vornehmen müssen, um diesen Schutz zu lockern.

Grafikkartentreiber und ihr Wandlung – WDDM

Auch bei den Grafikkartentreibern hat sich seit der Einführung von Windows mehr getan als die bereits benannte Verschiebung vom User-Mode in den Kernel-Mode. Mit der Einführung von Windows Vista stellte Microsoft erstmals ein spezielles Treibermodell für Anzeigetreiber vor – das „Windows Display Driver Model“ (WDDM). Das augenscheinlichste Merkmal der WDDM-Treiber und –Karten ist das so genannte „Glas-Design“, die transparent wirkenden Fenster. Insbesondere erweitert WDDM aber die Fähigkeit für das Multitasking von Grafikprozessoren, liefert einen Speichermanager und bietet einen Prozess-Planer, der dann die Abarbeitung koordiniert.

Aus Sicht des Benutzers verbessert WDDM die Anbindung von Fernsehern und Projektoren über eine automatische Plug & Play-Erkennung. Konkurrent Apple verfügte bereits 2002 im Betriebssystem OS X 10.2 über eine ähnliche Architektur mit dem Namen „Quartz Extreme“, die unter anderem auf Wikipedia beschrieben wird.

Bild 3. Wie ein Windows XP beziehungsweise Server 2003 auf unsignierte Treiber reagiert lässt sich pro Maschine oder als Gruppenrichtlinie für die gesamte Domäne festlegen.
Bild 4. Unter Windows Vista und höher ist die Verwendung nicht signierter Treiber nicht mehr so einfach – die Schaltfläche ist einfach verschwunden. Die im Unternehmen benötigten Treiber können jedoch auch in Eigenregie signiert werden.

Die Grundlagen — das Generelle Treibermodell

Vor gut zehn Jahren, in den Zeiten von Windows 98 und 2000 entwickelte Microsoft erstmals ein einheitliches Treibermodell, das dann den Hard- und Softwareanbietern die Erstellung von Treiber erleichtern sollte. Die Zauberbuchstaben dieser Zeit „WDM“ – Windows Driver Modell hielten bis zur Einführung von Windows Vista. Das wiederum neuere Modell, „Windows Driver Foundation“ (WDF) wurde dann als sogenanntes Framework auf den Markt gebracht. Technisch gesehen ist WDF rückwärtskompatibel zu Windows 2000, XP, 2003 und 2008. Die mit WDF erstellten Treiber verwendeten ausschließlich API-Aufrufe im Windows-System. Treiber aus XP/2003-Zeiten können hingegen auf neueren Windows-Varianten überhaupt nicht genutzt werden.

Gilt für jeden Treiber: Stabilität ist ein absolutes Muss

Die Stabilität eines Kernel-Gerätetreibers ist für das Betriebssystem von entscheidender Bedeutung. Der typische Schutz, der Prozesse auf dem Ring 0 vor Fehlern von Ring 3 Programmen absichert, ist nicht mehr gegeben. Auch wenn es sich beim „Hardware Abstraction Layer(HAL) nicht um einen Gerätetreiber handelt, soll diese Schicht hier kurz erwähnt werden. Besonders bei Server-Systemen, die für den Einsatz der  Datacenter Edition von Microsoft Windows Server optimiert wurden, ist sicherzustellen, dass die beigefügte CD oder Diskette mit Anpassungen für das Betriebssystem während der Installation eingespielt wird. Eine speziell angepasste HAL.DLL sorgt beispielsweise dafür, dass das Bussystem des Servers korrekt und effektiv angesprochen wird.

Für reguläre Gerätetreiber, beispielsweise SATA-, SCSI- oder Grafiktreiber, spielen INF-Dateien eine wichtige Rolle. Diese Textdokumente dienen dem Betriebssystem zur korrekten Identifikation eines Geräts oder einer Geräteklasse. Darüber hinaus ist in einer INF-Datei festgelegt, welcher Treiber zu verwenden ist, welche weitere Dateien im Zuge der Einbindung zu installieren und welche Einträge in der Registry-Datenbank vorzunehmen sind. Ein häufiger Begleiter der INF-Files ist eine Datei mit der Dateinamenerweiterung .PNF. Bei diesen PNF-Dateien handelt es sich um vorkompilierte INF-Dateien, auf die aus der jeweiligen INF-Datei dann entsprechend verwiesen wird.

Fast alles schon dabei: Die Treiber im Lieferumfang

Direkt nach der Installation von Windows finden sich bereits Hunderte von INF-Dateien im Ordner \INF im Wurzelverzeichnis eines Windows-Systems. Wird eine neue Hardwarekomponente am Computer gefunden, so sucht Windows zunächst in diesem Ordner nach einer passenden INF-Datei. Ist hier keine passende Datei vorhanden, so bittet Windows den Anwender um die Bekanntgabe des Dateipfads und leitet eine Kopie ein. Klassischerweise wird diese Datei auf einem Datenträger mitgeliefert und ist als OEM.INF bezeichnet. Die INF-Datei stellt nur die Installationsbeschreibung für den Treiber dar, der Treiber selbst ist in der Regel als DLL- oder EXE-Datei angelegt.

Die Treiberdaten aus dem Standardlieferumfang von Windows XP/2003 finden sich in einer Kabinettdatei, die während der Installation auf die Festplatte des Servers kopiert wird. Die DRIVER.CAB findet sich im Ordner \DRIVER CACHE\I386 im Systemverzeichnis. Da diese Datei weniger als 100 MByte Speicherplatz einfordert, sollte sie stets belassen werden, da bei Anschluss neuer Hardware ansonsten das Dialogfeld zur Benennung der Treiberposition deutlich häufiger erscheinen wird. Bei Windows Server 2003 in der x64-Edition finden sich die Treiber im Systemverzeichnis im Ordner \DRIVER CACHE\AMD64. Die Itanium-Version von Windows speichert die Treiberdateien im Ordner \DRIVER CACHE\IA64 ab. Aufgrund der unterschiedlichen Architekturen ist eine übergreifende Nutzung der Treiber unmöglich. Moderne Windows-Varianten legen die Treiber nicht mehr in einer CAB-Datei an, sondern als Ordnerstrukturen unter den beiden folgenden Pfaden:

C:\windows\System32\DriverStore\
C:\windows\System32\drivers“

Bild 5. Sicherheit: Wird eine neue Version eines Treibers eingespielt und treten bei Verwendung Probleme auf, so kann dieser über „Vorheriger Treiber“ per Rollback wieder entfernt werden.

Auf dem aktuellem Stand — die Treiberaktualisierung

Die regelmäßige Prüfung auf einen aktualisierten Treiber ist nur dann erforderlich, wenn mit einer Leistungssteigerung oder mit einer Erhöhung der Funktionalitäten eines Geräts zu rechnen ist. Neuralgische Komponenten, wie beispielsweise ein Bandlaufwerk, dessen Arbeitsgeschwindigkeit beispilesweise mit dem zeitlichen Backup-Fenster zu kollidieren droht, könnten so möglicherweise von einem Treiber-Update profitieren.

Die Version des aktuell installierten Treibers ermittelt ein Administrator über das jeweilige Eigenschaften-Dialogfeld im Gerätemanager. Neben dem Anbieter des Treibers, werden das Datum und die Version des Treibers ausgegeben. Besonders Grafikkartentreiber erfahren sehr häufige Aktualisierungen – zumindest im Client-PC-Bereich.

Die herstellerspezifischen Treiber bieten in der Regel eine höhere Funktionalität als ein generischer Treiber, den Microsoft bei Auslieferung Windows mit auf den Weg gegeben hat. Grundsätzlich empfiehlt sich eine Treiberaktualisierung nur dann, wenn Kritik an der Leistung eines Geräts besteht. Ohne nennenswerten Grund sollte keine Aktualisierung durchgeführt werden. Microsoft aktualisiert einen Teil der Treiber automatisch über den „Windows Update“-Service. Eine gezielte Suche nach Treiber-Updates über die „Windows Update“-Webseite ist ebenfalls möglich. Üblicherweise sind die produktspezifischen Webseiten der Hersteller jedoch schneller bei der Bereitstellung von Aktualisierungen.

Wenn es nicht klappt: Fehlerhafte Treiber mit Rollback ersetzen

Scheitert die Aktualisierung eines Treibers, so bietet Windows eine Möglichkeit die letzte Variante des Gerätetreibers wiederherzustellen. Diese als „Driver Rollback“ bezeichnete Funktion findet sich im Eigenschaften-Dialog des Geräte-Managers. Das „Driver Rollback“ bezieht sich stets auf die letzte bekannte Variante eines Treibers. Es werden nicht alle Variationen vorgehalten. Stellt sich also ein Update als nicht sinnvoll heraus, ist zunächst das „Rollback“ durchzuführen, ehe ein weiterer Installationsvorgang vorgenommen wird.

Wichtig: Treiber für 64-Bit-Systeme nur noch mit Signatur

Mit dem Ziel einer höheren Betriebssicherheit ist Microsoft mit dem Windows Server 2003 dazu übergegangen, Treiber ohne eine gültige digitale Signatur bei der Installation als Sicherheitsrisiko zu deklarieren. Die Signatur eines Treibers wird ausschließlich von Microsoft nach Prüfung des Treibers selbst vergeben. Dieses Procedere ist für den Hardwarehersteller mit zusätzlichen Kosten für die Überprüfung verbunden. Um eine digitale Signatur für einen Treiber zu erhalten, müssen Hardwarehersteller den jeweiligen Treiber bei Microsoft zur Prüfung einreichen.

Nach Abschluss der Sichtung im Windows Hardware Quality Lab (WHQL) wird die Treiberversion zertifiziert und signiert. Jede nachträgliche Änderung des Treibers führt zu einer Änderung in der Signatur und hat zur Folge, dass Windows die Änderung erkennt und eine fehlende Signatur erneut bemängelt. Selbst namhafte Hersteller von Hardware wie das Berliner Unternehmen AVM ersparen sich die Zertifizierung und beschreiben in ihren Handbüchern das Übergehen der Fehlermeldung bei Installation eines fehlenden Zertifikats. Wie Windows 2003/XP auf nicht signierte Treiber reagiert, ist Einstellungssache des Systemadministrators.

Im Register „Hardware“ in den Systemeigenschaften findet sich die Schaltfläche „Treibersignierung“. Im dort zu findenden Dialogfeld lässt sich das Verhalten des Systems gegenüber nicht signierten Treibern festlegen. Über die Gruppenrichtlinie „Codesignatur für Gerätetreiber“ lässt sich im Knoten Benutzerkonfiguration\Administrative Vorlagen\System das Verhalten domänenweit einstellen.

Mit Windows Vista wurden die Anforderungen von Seiten Microsoft noch einmal erhöht – und das mit gutem Grund. Die Verpflichtung zum signierten Treiber, bei 64-Bit generell und bei einer Vielzahl von 32-Bit-Treibern, soll die Sicherheit insbesondere von Kernel-Treibern erhöhen. Da Treiber in dieser Ebene Zugriff auf beinahe alle Daten und Vorgänge haben, ist diese erhöhte Sicherheit nur verständlich. Alle im Internet kursierenden Tipps um die Signatur-Meldung zu umgehen oder möglicherweise Software zu installieren, die in erster Linie für Treiberentwickler gedacht ist, können in einer professionell geführten IT-Umgebung kaum sinnvoll sein.

Steht dem Administrator kein signierter 64-Bit-Treiber zur Verfügung, so ist es erforderlich diesen im Zusammenspiel mit der eigenen Zertifizierungsstelle zu signieren. Eine exakte Anleitung bietet Microsoft in einem dazu verfassten Whitepaper zur Verfügung.

Thomas Bär/ fms

Der spezielle Tipp: Kein Treiber – was nun?

Im Vergleich zum Windows Server 2000 bietet das weit verbreitete Server-Betriebssystem Windows Server 2003 von Microsoft deutlich weniger Treiber für ältere Hardwarekomponenten. Für eine Vielzahl von ISA und ISA-PnP-Erweiterungskarten werden in der Standardauslieferung keine Treiber mehr für von Windows angeboten. Sollen diese betagten Komponenten dennoch eingesetzt werden, so empfiehlt sich der Blick auf die Homepage des Herstellers. Oft finden sich die Treiber nur noch in einem Bereich mit der Bezeichnung „Legacy Devices“.

Auf der Update-Webseite von Microsoft besteht eine weitere Möglichkeit die Treiber für ältere Hardware zu finden. Oft bieten Hersteller neuere Treiber an, die nicht selten neue Funktionalitäten des Geräts eröffnen.

Zu vielen Erweiterungskarten gibt es zudem im Internet viele Anleitungen, um eine SETUP.INF-Datei so anzupassen, dass sie auch mit Windows Server 2003 zusammenarbeitet. Die Erfahrungen des Autors bezüglich dieser „Tricks“ sind eher negativ, denn positiv. Eine vom Hersteller nicht mehr unterstützte Erweiterungskarte in einem Server-System zu nutzen ist im Sinne einer stabilen Umgebung nicht zu verantworten. Ältere Server-Systeme, deren Hardware ausgereizt ist, könnten möglicherweise mit Programmen wie dem Converter von VMware auf eine virtuelle Umgebung umgezogen werden – so verliert das auch das Gespenst „Alte Hardware – keine Treiber“ seinen Schrecken (tb/fms).

Lesen Sie auch