Wie Windows während der Ausführung des Setupprogramms den am besten geeigneten Gerätetreiber ermittelt

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 279112 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
279112 How Windows determines the most suitable device driver to install during Setup
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Zusammenfassung

Dieser Artikel beschreibt das Verfahren, das angewendet wird, um während der Ausführung des Setupprogramms den am besten geeigneten Gerätetreiber für ein Gerät zu ermitteln.

Wenn Sie das Windows-Setupprogramm ausführen, gibt es möglicherweise mehrere Sätze von Gerätetreibern oder INF-Dateien, die in Verbindung mit einem bestimmten Gerät funktionieren. Sowohl das Setupprogramm als auch Plug & Play versuchen, die Konflikte aufzulösen, indem sie den Treiber auswählen, der am besten zu dem Gerät passt, das installiert werden soll.

Hinweis: Dieser Artikel beschreibt lediglich das Verfahren für Geräte, die im Rahmen des auf die graphische Benutzeroberfläche entfallenden Teils des Setupprogramms (oder wenn dieses abgeschlossen ist) installiert werden. Bei der Erkennung durch den Massenspeichercontroller und der Auswahl der Gerätetreiber, die während des im Textmodus ausgeführten Teils des Setupprogramms erfolgen, kommt ein anderes Verfahren zur Anwendung.

Weitere Informationen

Weitere Informationen zum Prozess der Erkennung durch den Massenspeichercontroller finden Sie im folgenden Artikel der Microsoft Knowledge Base:
220845 Hinzufügen während Windows Setup Anbieter oder aktualisierten Treibers

Plug & Play versucht, einen kompatiblen Gerätetreiber zu finden, indem es die Plug & Play-Kennungen (IDs) der Hardware (die zum Zeitpunkt der Auflistung des Gerätes von dessen Firmware oder vom System-BIOS zurückgegeben werden) mit möglicherweise passenden Plug & Play-IDs in den INF-Dateien vergleicht.

Plug & Play kann alle INF-Dateien nach dem für ein Gerät am besten geeigneten Gerätetreiber durchsuchen, der für ein bestimmtes Gerät installiert werden soll. Plug & Play bricht seine Suche nicht ab, wenn es den ersten passenden Treiber gefunden hat. Plug & Play durchsucht alle in seinem Suchpfad (der im folgenden Registrierungsschlüssel definiert wird) aufgelisteten INF-Dateien:
HKEY-LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
DevicePath:Reg_Expand_SZ:%Systemroot%\Inf

Hinweis: Standardmäßig gibt es unter dem vorstehend genannten Speicherort in der Registrierung nur diesen einen Eintrag, es können jedoch weitere Pfade an diesen Eintrag angehängt werden, wenn Sie eine unbeaufsichtigte Installation durchführen und in der Antwortdatei für die unbeaufsichtigte Installation der Parameter OemPnpDriversPath = verwendet wird.

Das Setupprogramm erstellt eine Liste mit kompatiblen Gerätetreibern, die in einer INF-Datei gefunden wurden, und weist jedem gefundenen Treiber einen "Rang" zu. Diese Ränge reichen von "0" bis "0xFFFF", wobei 0 für den am besten und 0xFFFF für den am wenigsten passenden Treiber steht. Der Gerätetreiber mit dem niedrigsten Rang wird als am besten geeignet eingestuft und installiert.

Die Rangliste der Gerätetreiber ist wie folgt aufgebaut:
  • 0x0 bis 0xfff: Die Hardwarekennung des Geräts stimmte mit einer Hardwarekennung in einer der INF-Dateien überein.
  • 0x1000 bis 0x1fff: Die Hardwarekennung des Geräts stimmte mit einer der kompatiblen Kennungen in einer INF-Datei überein.
  • 0x2000 bis 0x2fff: Eine der kompatiblen Kennungen des Geräts stimmte mit einer der Hardwarekennungen in einer der INF-Dateien überein.
  • 0x3000 bis 0x3fff: Eine der kompatiblen Kennungen des Geräts stimmte mit einer der kompatiblen Kennungen in einer der INF-Dateien überein.
  • 0xFFFF: Treffer mit der geringsten Übereinstimmung.
In Windows XP und Windows Server 2003 gibt es weitere Ranglisten für die Einstufung von Gerätetreibern:
  • 0x8000 to 0x8FFF: Übereinstimmungen mit als nicht vertrauenswürdig eingestuften Hardwarekennungen
  • 0x9000 to 0x9FFF: Übereinstimmungen mit als nicht vertrauenswürdig eingestuften kompatiblen Kennungen
Einige der INF-Dateien werden eventuell als nicht vertrauenswürdig eingestuft, wenn sie nicht digital signiert sind oder der im Abschnitt "Model" (Modell) aufgeführte Name keine Windows NT-spezifischen Namenszusätze enthält (das Gerät kann zwar unter Windows NT, Windows 95 oder Windows 98 installiert werden, es hat jedoch keine spezifischen Einträge für diese Betriebssysteme).

Falls das Setupprogramm einen Gerätetreiber als nicht vertrauenswürdig einstuft, kann es dessen Rang in den vorstehend beschriebenen Ranglisten entsprechend ändern.
Gerätetreiberränge im Bereich 0x0 bis 0xfff werden als "Hardwarekennungsübereinstimmungen" bezeichnet, weil bei ihnen die Hardwarekennungen übereinstimmen. Treiber aus diesem Bereich werden als am besten geeignet angesehen, während Treiber aus anderen Bereichen als "kompatibel" eingestuft werden, weil bei der Ermittlung des Ranges wenigstens eine kompatible Kennung gefunden wurde. Klasseninstallationsprogramme und Koinstallationsprogramme können ebenfalls Auswirkungen auf die Auswahl des Gerätetreibers haben, weil ein Gerätetreiber als "ungültig" gekennzeichnet werden kann, wenn das Installationsprogramm feststellt, dass der Gerätetreiber das jeweilige Gerät nicht unterstützen kann oder wenn es dessen Rang ändert.

Werden jedoch zwei Gerätetreiber gleich eingestuft, verwendet das Setupprogramm den Treiber mit dem aktuelleren Datum. Ist einer der Gerätetreiber signiert und der andere nicht, wird dem unsignierten Treiber ein Wert im Bereich 0xFFFFFFFF zugeordnet, während der signierte Treiber ausgewählt und installiert wird.

Von OEM-Herstellern gelieferte Treiber werden eventuell nicht ausgewählt und verwendet. Auch wenn ein Hersteller einen aktualisierten Gerätetreiber geliefert hat, ist dieser möglicherweise nur als kompatibler Gerätetreiber geschrieben worden, was zu einer schlechteren Einstufung in Bezug auf die Übereinstimmung führt. Setup berücksichtigt bei der Ermittlung der Übereinstimmung nicht, ob der Gerätetreiber eines OEM-Herstellers digital signiert ist. Falls der unsignierte Gerätetreiber einen besseren Rang und eine größere Übereinstimmung aufweist, kann er durch das Setupprogramm ausgewählt und installiert werden.

Wenn Sie das Setupprogramm ausführen und in keiner der INF-Dateien eine Übereinstimmung gefunden wird, wird die Geräteinstallation aufgeschoben. In diesem Fall kann das Gerät im Geräte-Manager als unbekanntes Gerät aufgeführt sein. Wenn ein neues Gerät eingeführt wird (nicht während der Ausführung des Setupprogramms) und in keiner der INF-Dateien auf dem Computer eine Übereinstimmung gefunden wird, kann eine Eingabeaufforderung mit der Meldung "Neue Hardwarekomponente gefunden" angezeigt werden. In diesem Fall werden Sie eventuell aufgefordert, einen Gerätetreiber bereitzustellen.

Nehmen Sie beispielsweise an, dass Ihr Computer mit einem PCI-Videoadapter mit einer Plug & Play-Kennung ausgerüstet ist, die es in zwei verschiedenen INF-Dateien gibt: "Nv3_disp.inf" und "Nv4_disp.inf". Keiner dieser Gerätetreiber ist digital signiert, so dass beiden Treibern ein Wert im Bereich 0xFFFFFFFF zugewiesen wird. In diesem Beispiel befinden sich die Dateien in den Ordnern "D:\Drivers\Video1" und "D:\Drivers\Video2".

Unter "Devicepath=" gibt es in der Registrierung die Einträge "%Systemroot%\Inf;%Systemdrive%\Drivers\Video1" und "%Systemdrive%\Drivers\Video2".

Hinweis: "%Systemroot%" ist der Ordner "D:\Winnt" und "%Systemdrive%" ist das Systemlaufwerk "D":

Sowohl das Setupprogramm als auch Plug & Play durchsuchen alle unter den vorstehend genannten Pfaden gefundenen INF-Dateien und protokollieren gegebenenfalls gefundene Übereinstimmungen. Finden entweder das Setupprogramm oder Plug & Play mehr als eine Übereinstimmung, wird der am besten geeignete Treiber verwendet.

Der folgende Auszug aus der Datei "Setupapi.log" veranschaulicht den vorstehend beschriebenen Vorgang. Für dieses Beispiel wurde der im folgenden Artikel beschriebene ausführliche Protokollierungsmodus für das Setupprogramm ausgewählt:
243996 Aktivieren von Ausführliche Protokollierung in Windows 2000 GUI-Mode Setup

Bei einer normalen Ausführung des Setupprogramms sind die Angaben in der Datei "Setupapi.log" nicht derartig detailliert.

Wenn ein Gerät abgefragt wird, gibt es eine Liste mit Hardwarekennungen und den jeweils kompatiblen Kennungen zurück. Nicht für alle Geräte werden mehrere Kennungen gemeldet, in den meisten Fällen ist dies jedoch so. In diesem Beispiel werden für eine Videokarte die folgenden Kennungen zurückgegegeben:
Searching for hardware IDs:
Pci\Ven_10de&dev_0028&subsys_5a001092&rev_11,
Pci\Ven_10de&dev_0028&subsys_5a001092,
Pci\Ven_10de&dev_0028&cc_030000,
Pci\Ven_10de&dev_0028&cc_0300
Searching for compatible IDs:
Pci\Ven_10de&dev_0028&rev_11,
Pci\Ven_10de&dev_0028,
Pci\Ven_10de&cc_030000,
Pci\Ven_10de&cc_0300,
Pci\Ven_10de,pci\cc_030000,
Pci\Cc_0300
Enumerating files D:\Winnt\Inf\*.inf
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\1394.inf".
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\accessor.inf".
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\acpi.inf".
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\adm_mult.inf".
@ 07:11:59.191 : Opened PNF of "D:\Winnt\Inf\adm_port.inf".
@ 07:11:59.207 : Opened PNF of "D:\Winnt\Inf\agtinst.inf".
.
.
.
Enumerating files D:\Drivers\Video1\*.inf
@ 07:12:00.660 : Opened PNF of "D:\Drivers\Video1\NV4_DISP.inf".
@ 07:12:00.660 : The file (D:\Drivers\Video1\NV4_DISP.inf) is not digitally
 signed, ignoring driver date.
@ 07:12:00.660 :Found Pci\VEN_10DE&DEV_0028 in 
D:\Drivers\Video1\NV4_DISP.inf; Device: NVIDIA RIVA TNT2; Driver: NVIDIA 
RIVA TNT2; Provider: NVIDIA; Mfg: NVIDIA; Section: nv4
@ 07:12:00.660 : Decorated section name: nv4
Enumerating files D:\Drivers\Video2\*.inf
@ 07:12:00.660 : Opened PNF of "D:\Drivers\Video2\NV3_DISP.inf".
@ 07:12:00.675 : The file (D:\Drivers\Video2\NV3_DISP.inf) is not digitally
 signed, ignoring driver date.
@ 07:12:00.675 : Found PCI\VEN_10DE&DEV_0028 in
 D:\Drivers\Video2\NV3_DISP.inf; Device: NVIDIA RIVA TNT2; Driver: NVIDIA
 RIVA TNT2; Provider: NVIDIA; Mfg: NVIDIA; Section: nv4
@ 07:12:00.675 : Decorated section name: nv4
@ 07:12:01.706 : Device install function: DIF_SELECTBESTCOMPATDRV.
@ 07:12:01.706 : Executing class installer.
@ 07:12:01.894 : Completed class installer.
@ 07:12:01.894 : Executing default installer.
@ 07:12:01.894 : Selected driver installs from section nv4 in D:\Drivers\Video1\Nv4_disp.inf.
@ 07:12:01.894 : Changed class GUID of device to {4D36E968-E325-11CE-BFC1-08002BE10318}.
@ 07:12:01.894 : Set selected driver.
@ 07:12:01.894 : Selected best compatible driver.
@ 07:12:01.894 : Completed default installer.
@ 07:12:06.565 : Device install function: DIF_ALLOW_INSTALL.
@ 07:12:06.565 : Executing class installer.
@ 07:12:06.565 : Completed class installer.
@ 07:12:06.581 : Device install function: DIF_INSTALLDEVICEFILES.
@ 07:12:06.581 : Executing class installer.
@ 07:12:06.581 : Completed class installer.
@ 07:12:06.581 : Executing default installer.
				
In dieser Beispielausgabe hat das Setupprogramm den Gerätetreiber unter Verwendung der Datei "D:\Drivers\Video1\Nv4_disp.inf" ausgewählt und installiert, weil es diesen als am besten geeignet eingestuft hat.

Sie können die installierten Geräte und die bei der Installation verwendeten INF-Dateien leicht finden, indem Sie die Datei "%Systemroot%\Setupapi.log" im Windows-Editor öffnen und bei durch Plug & Play installierten Geräten nach "DIF_SelectBestCompatDrv" und bei manuell installierten Geräten nach "DIF_SelectDevice" suchen.

Eigenschaften

Artikel-ID: 279112 - Geändert am: Montag, 3. Dezember 2007 - Version: 6.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows Small Business Server 2003 Premium Edition
  • Microsoft Windows Small Business Server 2003 Standard Edition
Keywords: 
kbinfo kbenv kbsetup KB279112
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com