Welche geräte brauchen treiber. Woher weiß ich, welchen Soundtreiber ich benötige?

Wenn Sie Ihren Computer selbst zusammengebaut haben und Komponenten dafür separat gekauft haben, dann sind in diesem Fall nicht mehr alle Treiber für den Computer auf einer einzigen Herstellerseite zu finden, wie es beim Kauf eines fertigen Computers einfach wäre (dies ist beschrieben im Artikel „So finden Sie Treiber, wenn ein Laptop oder ein fertiger Desktop-Computer gekauft wurde!“). Schließlich kauften Sie einen unfertigen Computer, der einem Hersteller gehörte, über ein eigenes Modell und Treiber verfügte, die Sie auf einmal von einer Website herunterladen konnten. Da der Computer aus von Ihnen selbst ausgewählten Ersatzteilen zusammengesetzt wird, entspricht er keinem Modell mehr und gehört keinem Hersteller, da dies bereits Ihre Kreation ist :) Daher müssen Sie für alle separat nach Treibern suchen Geräte, aus denen der Computer zusammengesetzt wurde. Dazu gehört auch der Fall, wenn man sich nach dem Kauf eines fertigen (bereits zusammengebauten) Computers nach einiger Zeit dazu entschlossen hat, ein „Stück Eisen“ auszutauschen.

Jetzt zeige ich Ihnen, wie Sie alle notwendigen Treiber für einen selbst konfigurierten Computer manuell über das Internet finden.

Über was für ein Treiber wird im Artikel beschrieben:

Sie haben also selbst alle Komponenten zusammengesucht, den Computer zusammengebaut, Windows installiert und festgestellt, dass die Treiber nicht für alle Geräte und vielleicht sogar für fast alle nicht installiert sind. Ob alle Treiber installiert sind, können Sie über das standardmäßige Geräte-Manager-Dienstprogramm herausfinden. Wie das geht, habe ich in einem separaten Artikel erklärt.

Und um in diesem Fall Treiber zu installieren, gibt es mehrere Möglichkeiten.

Beachten Sie!
Wenn Sie nicht einmal automatisch Treiber für Netzwerkkarten installiert haben, was Ihnen nicht die Möglichkeit gibt, von diesem Computer aus auf das Internet zuzugreifen, müssen alle folgenden Schritte von einem anderen Computer mit Internetzugang ausgeführt werden. Und nachdem Sie alle Treiber heruntergeladen haben, müssen Sie sie übertragen gewünschten Rechner, beispielsweise über ein Flash-Laufwerk oder eine Festplatte.

Option Nummer 1. Suchen Sie manuell anhand des Gerätecodes über die Website devid.drp.su nach Treibern

Ich halte diese Option für die beste. Die Methode besteht darin, den Gerätecode zu ermitteln und mit diesem Code auf verschiedenen Seiten im Internet nach Treibern zu suchen.

Angenommen, im Geräte-Manager sehen wir so etwas:

Diese. Treiber für mehrere Geräte sind nicht auf dem Computer installiert. Allerdings ist es problematisch, über den Gerätemanager festzustellen, für welche Geräte es keine Treiber gibt, da die Namen irgendwie verschwommen sind. Kann man nur grob nachvollziehen. Beispielsweise ist "Ethernet-Controller" am wahrscheinlichsten LAN-Karte für kabelgebundene Internetverbindung. " Netzwerk-Controller' ist wahrscheinlich WLAN-Adapter, d.h. Netzwerkkarte für den Zugriff auf das Internet über Wi-Fi.

Aber jedes Gerät hat seine eigene eindeutige Nummer, die uns der Gerätemanager einfach zeigen kann. Und nachdem wir die Nummer gelernt haben, können wir den Treiber für das Gerät über das Internet finden.

Sehen wir uns einige Beispiele an, wie Sie Treiber manuell anhand des Gerätecodes finden:

Am Anfang werde ich einen Treiber für das obskure Gerät "Simple Communications PCI Controller" finden.

    Bestimmen Sie den Code des Geräts, für das wir einen Treiber finden möchten.

    Um den Gerätecode zu ermitteln, klicken Sie im Gerätemanager mit der rechten Maustaste darauf und wählen Sie im erscheinenden Menü „Eigenschaften“ aus:

    Wählen Sie im sich öffnenden Fenster die Registerkarte "Details" und dann unten unter der Aufschrift "Eigenschaften" die Option "Hardware-ID":

    Zunächst versuchen wir, nach dem Code aus der untersten (4.) Zeile zu suchen. Klicken Sie mit der rechten Maustaste unten auf die 4. Zeile mit dem Code und wählen Sie "Kopieren".

    Versuch, einen Treiber per Code auf devid.drp.su zu finden.

    Öffnen Sie nach dem Kopieren des Codes die Website:

    David.drp.su

    Versuchen wir, den Treiber darauf zu finden. Diese Seite gehört zum Programm Treiberpaket Lösung, das fast alle möglichen Treiber sammelt. Hier finden Sie mit hoher Wahrscheinlichkeit einen Treiber für jedes Gerät.

    Nachdem Sie die Seite geöffnet haben, müssen Sie als erstes den im vorherigen Schritt kopierten Gerätecode in die oberste lange Zeile einfügen und alles in diesem Code löschen, was vom „&“-Symbol bis zum Ende kommt.

    Sie haben beispielsweise den Code kopiert:
    PCI\VEN_8086&DEV_0166 &CC_0300

    Nachdem Sie also die Zeichen von "&" entfernt haben, sollten Sie den Code haben:
    PCI\VEN_8086&DEV_0166

    Wenn Sie nicht wissen, welches System Sie haben, öffnen Sie es Windows-Suche und geben Sie dort "Systeminformationen" ein und wählen Sie dann das erscheinende Programm aus der Liste aus:

    Im sich öffnenden Programm wählen Sie im linken Fenster „System Information“ und rechts in der Zeile „OS Name“ wird Ihnen die Version Ihres Windows angezeigt (in meinem Beispiel im Bild unten „Windows 10“) , und in der Zeile "Typ" - Bittiefe: x64 oder x86:

    Basierend auf diesen Daten geben wir den Typ und die Bittiefe des Systems auf der Website devid.drp.su an.

    Nachdem der Gerätecode angegeben und die Windows-Version ausgewählt wurde, klicken Sie auf die Schaltfläche "Treiber suchen".

    Als Ergebnis zeigt die Seite eine Liste von Treibern an, die mit dem von Ihnen angegebenen Hardwarecode und für Ihren übereinstimmen Windows-Versionen. Laden Sie über die Schaltfläche "Download" einen der Treiber auf den Computer herunter.

    Beachten Sie!
    Wenn mehrere identische Treiber angezeigt werden (wie im Bild oben), dann laden Sie den Treiber herunter, der das neueste Veröffentlichungsdatum in der Spalte Treiberversion hat.

    Durch Klicken auf die Schaltfläche „Herunterladen“ wird der Treiber auf Ihren Computer heruntergeladen und Sie müssen ihn nur noch installieren. Es ist überhaupt nicht kompliziert, Treiber zu installieren, und ich habe diesen Punkt in einem separaten Artikel angesprochen.

    Beachten Sie!

    Es kommt vor, dass verschiedene Fahrer in der Fahrerliste angezeigt werden, zum Beispiel:

    Das bedeutet, dass der Hardwarecode für mehrere Geräte ähnlich sein kann. In diesem Fall können Sie einfach alle vorgeschlagenen Optionen herunterladen und versuchen, sie zu installieren, bis sie installiert sind richtigen Fahrer.

Wie Sie sehen können, war der Fahrer nicht schwer zu finden. Jetzt schaue ich mir ein anderes Beispiel an, um es klarer zu machen :) Zum Beispiel finde ich einen Treiber für ein Gerät, das im Geräte-Manager als „Ethernet-Controller“ bezeichnet wird.

Ich klicke mit der rechten Maustaste auf das Gerät, öffne die Eigenschaften:

Wählen Sie im Fenster die Registerkarte "Details", wählen Sie den Eintrag "Hardware-ID" aus der Liste und kopieren Sie den Code aus der 4. Zeile:

Ich öffne die Seite devid.drp.su, gebe dort die kopierte Nummer an, lösche alles darin, beginnend mit dem Symbol „&“. Als nächstes wähle ich die Windows-Version aus und führe eine Suche durch:

Für mein Gerät und die von mir ausgewählte Windows-Version gibt es nur eine Version des Treibers, die ich herunterladen und installieren kann:

Das ist alles!

Es kommt jedoch gelegentlich vor, dass die Seite devid.drp.su keine Treiber für den von Ihnen angegebenen Hardwarecode findet. In diesem Fall gibt es eine alternative Option, die wir im Folgenden betrachten werden.

Eine alternative Möglichkeit, anhand des Gerätecodes nach Treibern zu suchen

Wenn auf der bekannten Seite devid.drp.su keine Treiber für das benötigte Gerät vorhanden sind, können Sie diese einfache Methode verwenden:

    Ermitteln Sie den Gerätecode. Kopieren Sie auf ähnliche Weise die Zeile mit dem Gerätecode (4.):

    Wir suchen auf verschiedenen Baustellen einen Fahrer.

    Jetzt gehen wir auf die Website Google.com und fügen den kopierten Code direkt in die Suchleiste ein, danach entfernen wir das „&“-Symbol und alles, was darauf folgt, zum Beispiel aus dem Code:

    PCI\VEN_8086&DEV_1C3A &SS_0780= PCI\VEN_8086&DEV_1C3A

    Wir drücken die Suchschaltfläche und sehen eine Liste von Websites, die unserer Suchanfrage entsprechen:

    Jetzt müssen Sie die Sites der Reihe nach öffnen, beginnend mit der allerersten (oben), und prüfen, ob Sie Treiber auf der Site herunterladen können.

    Es ist sofort erwähnenswert, dass nicht alle Websites den benötigten Treiber finden, da einige von ihnen keinen Treiber für Ihre Windows-Version haben und einige keinen Mist anstelle von Treibern haben.

    Im obigen Beispielbild habe ich die Seiten eingekreist, auf denen Treiber wirklich am häufigsten gefunden und problemlos heruntergeladen werden können. Hier sind die Seiten:

    Wenn Sie tiefer in die Suche einsteigen, finden Sie andere Websites, auf denen Sie den benötigten Treiber herunterladen können. Aber suchen Sie nicht in den Foren nach Treibern, da dies der längste Weg ist. Sie müssen alle Nachrichten hintereinander lesen, um zu verstehen, wo der Link zum benötigten Treiber angegeben ist.

    Sehen wir uns nun einige Beispiele für das Herunterladen von Treibern von verschiedenen Websites an.

    Ein Beispiel für das Herunterladen eines Treibers von driver.ru:

    Wenn Sie über die Suchergebnisse auf die Website gelangen, werden auf der Seite bereits Treiber angezeigt, von denen die meisten mit Ihrem Gerät kompatibel sind.

    Hier können Sie einfach der Reihe nach alle Treiber herunterladen, die die Seite anzeigt, und versuchen zu installieren, bis der gewünschte Treiber installiert ist. Alle inkompatiblen Treiber werden entweder nicht installiert oder funktionieren einfach nicht, sodass Sie keine Angst haben müssen, etwas falsch zu installieren.

    Denken Sie daran, auf die Windows-Version zu achten, für die der Treiber bestimmt ist.

    Merken Sie sich!
    Treiber für Windows 8, Windows 8.1 und Windows 10 sind sehr oft kompatibel und wenn Sie beispielsweise keine Treiber speziell für Windows 8.1 finden konnten, versuchen Sie es mit der Installation von Treibern für Windows 8. Oder wenn Sie keine Treiber für Windows 10 finden konnten, versuchen Sie es Installation von Windows 8.1 oder Windows 8. Es kommt auch vor, dass Treiber für Windows 7 mit Windows 8, 8.1 und Windows 10 kompatibel sind. Das heißt. Sie können versuchen, Treiber von verschiedenen Systemen zu installieren.

    Betrachten Sie ein Beispiel für den Download-Prozess von dieser Website. Nachdem Sie den benötigten Treiber gefunden haben, klicken Sie unten auf die Download-Schaltfläche:

    Im nächsten Fenster müssen Sie bestätigen, dass Sie kein Roboter sind, indem Sie das entsprechende Kästchen ankreuzen (siehe Abbildung unten). Klicken Sie dann unten auf die Schaltfläche "Herunterladen":

    Und schließlich sehen wir auf der nächsten Seite ganz oben einen Download-Link in Form eines Dateinamens mit einer Erweiterung:

    Klicken Sie darauf und laden Sie die Datei herunter.

    Ein Beispiel für das Herunterladen eines Treibers von members.driverguide.com:

    Wenn Sie von einer Suchmaschine aus auf die Website gehen, zeigt die Seite eine Liste wahrscheinlich kompatibler Treiber mit Ihrem Gerät an:

    Ein Klick auf den Download-Button öffnet sich neue Seite wo viel Werbung ins Auge fällt.

    Aufmerksamkeit!
    Klicken Sie nirgendwo hin, wenn es viele Anzeigen auf der Website gibt, seien Sie vorsichtig, sonst können Sie Viren und andere Infektionen auf Ihrem Computer aufnehmen!

    Im nächsten Fenster erscheint in der Mitte ein Fenster, um zu bestätigen, dass Sie eine echte Person und kein Programm sind :) Sie müssen warten, bis der Inhalt des Fensters geladen ist, und auf die Schaltfläche "Anzeigen" klicken:

    Es öffnet sich ein neues Fenster, in dem wir erneut einige Sekunden warten, bis der Inhalt geladen ist. Im Fenster neben der Aufschrift erscheint ein Code: "Enter". Dieser Code muss genau so umgeschrieben werden, wie er in der Zeile darunter ("Ihre Antwort") steht, und auf "Zurück zur Seite" klicken:

    Sie kehren zur ursprünglichen Seite zurück, auf der nun die Schaltfläche „Weiter“ erscheint. Wenn Sie darauf klicken, wird der Treiber auf den Computer heruntergeladen:

so was alternativer Weg Sie können versuchen, Treiber manuell anhand des Gerätecodes zu finden. Natürlich habe ich für diese Option Beispiele für das Herunterladen eines Treibers von nur 2 Websites gezeigt, und es gibt eine große Anzahl davon. Das Prinzip des Herunterladens ist jedoch auf allen Websites gleich. Nur die Oberfläche unterscheidet sich größtenteils und manchmal die Download-Reihenfolge.

Aber ich bin eher geneigt, dass Sie Treiber mit der in Option 1 vorgeschlagenen Hauptmethode leicht finden können.

Option Nummer 2. Suchen Sie auf den offiziellen Websites der Gerätehersteller nach Treibern

Wenn Sie mit der 1. Option keine Treiber für Ihre Geräte finden konnten, können Sie dies auf diese Weise tun.

Sie müssen den Hersteller und das Modell jedes Geräts in Ihrem Computer in der Dokumentation nachschlagen oder spezielle Programme(z. B. Aida64 oder Sysinfo Detector) und suchen Sie dann separat nach Treibern für jedes Gerät über die offizielle Website des Herstellers oder (wenn es auf der offiziellen Website keinen Treiber gibt) im Internet entsprechend dem Gerätemodell.

Nehmen wir dieses Beispiel. Im Geräte-Manager kann ich sehen, dass der Treiber für die Grafikkarte und ein anderes seltsames Gerät nicht im System installiert ist:

Wie haben Sie festgestellt, was auf der Grafikkarte war? Denn wenn in der Geräteliste im Bereich „Videoadapter“ ein Gerät „Standard-VGA-Grafikkarte“ steht, dann gibt es keinen Treiber für die Grafikkarte, sonst würde das Gerät z. B. den Namen Ihrer Grafikkarte tragen „NVIDIA GeForce GTX980“.

Schauen wir uns die Abfolge Ihrer Aktionen an:

    Informieren Sie sich über den Hersteller und das Modell des Geräts.

    Beachten Sie!
    Wenn Sie im Geräte-Manager ein "Unbekanntes Gerät" haben, ist der Treiber für einige Geräte wahrscheinlich nicht installiert Hauptplatine oder ein spezielles Programm für das Motherboard. Daher müssen Sie zuerst alle Treiber für Ihr Motherboard und Programme dafür installieren.

    Wenn Sie einen Computer aus separaten Komponenten zusammengebaut haben, könnten Sie für jedes gekaufte Gerät Dokumente haben, aus denen hervorgeht, was wir benötigen - Hersteller und Modell. Wenn keine Dokumentation mehr vorhanden ist, hilft Ihnen eines der Programme, die die Hardware Ihres Computers bestimmen, das Modell herauszufinden. Ich empfehle Aida64 oder Sysinfo Detector. Der erste ist kostenpflichtig, aber Sie können ihn 30 Tage lang kostenlos nutzen. Und die zweite hat eine völlig kostenlose Ausgabe. Wenn Sie überlegen, was Sie wählen sollen, wählen Sie vorübergehend - Aida64, da die Qualität dieses Programms immer noch höher sein wird.

    Wie Sie das Programm Aida64 installieren und verwenden, wird im Artikel beschrieben:

    Wie Sie Sysinfo Detector installieren und verwenden, wird im Artikel beschrieben:

    Wenn Sie Geräte über das Aida64-Programm erkennen Dann können Sie bestimmen, welche Art von Geräten ohne Treiber sind, indem Sie den Abschnitt „Geräte\u003e\u003e Windows-Geräte“ und öffnen Sie dann rechts die Kategorie „Unknown“ (unbekannt). Informationen über das ausgewählte Gerät werden unten angezeigt:

    In meinem Beispiel heißt das unbekannte Gerät also "Asus ATK-110 ACPI Utility".

    Ich habe oben erwähnt, dass ein unbekanntes Gerät höchstwahrscheinlich etwas auf dem Motherboard ist, also lassen Sie uns sofort feststellen, welches Motherboard sich im Gerät befindet. Öffnen Sie dazu den Abschnitt "Motherboard" und gehen Sie zum selben Unterabschnitt. Rechts im Fenster sehen wir den Hersteller und das Modell des Motherboards: Asus P5KPL-AM EPU.

    Kommen wir nun zur Grafikkarte. Die Grafikkarte wird normalerweise in Aida64 unter „Display“ > „Video PCI/AGP“ richtig erkannt. Wie Sie sehen können, hat das Programm die Grafikkarte erkannt: Nvidia GeForce GT 430":

    Wenn Sie Geräte über Sysinfo Detector beobachten, dann können Sie Geräte mit deinstallierten Treibern auf zwei Arten sehen. Der erste befindet sich im Abschnitt "Abweichungen":

    Wie Sie sehen können, wurde dasselbe Gerät wie durch das Aida64-Programm erkannt: ACPI / ATK0110

    Und der zweite Weg - Wählen Sie im Abschnitt "PCI-Geräte" den Unterabschnitt "Unbekannte Geräte". Hier sah das Programm sofort 3 "Problem"-Geräte und eines davon nur das Motherboard: Asus P5KPL-AM EPU.

    Schauen Sie besser im Abschnitt "PCI-Geräte" nach Hersteller und Modell der Grafikkarte. Suchen Sie in der Liste den Unterabschnitt "Display-Controller":

    Das Beispiel zeigt, dass der Hersteller der Karte NVIDIA und das Modell GeForce GT 430 ist.

    Also haben wir die notwendigen Daten gelernt und werden jetzt nach dem Fahrer suchen.

    Wir suchen auf den Webseiten der Gerätehersteller nach einem Treiber.

    Wir haben herausgefunden, dass der Treiber fehlt, höchstwahrscheinlich für ein Gerät auf dem Motherboard oder vielleicht ein Programm speziell für das Motherboard. Der Hersteller des Boards ist Asus, und das Modell in meinem Beispiel ist P5KPL-AM EPU. Da der Hersteller Asus ist, werden wir auf der Website der offiziellen Website von Asus suchen.

    Wie Sie nach der offiziellen Website des Geräteherstellers suchen und von dort Treiber herunterladen, wird ausführlich beschrieben. Kurz gesagt, Sie müssen eine Suchmaschine öffnen Google-System, geben Sie dort den Namen des Herstellers ein und öffnen Sie die erste Seite in den Suchergebnissen. Gehen Sie als Nächstes zum Abschnitt „Service“ oder „Support“ und geben Sie das Gerätemodell an, zum Beispiel:

    Achten Sie neben den Treibern auch auf den Abschnitt „Dienstprogramme“ (er ist in der Liste im Bild oben zu sehen), da „Unidentified Device“ manchmal eine Art spezielles Programm für das Motherboard ist, das nicht installiert ist. Es ist besser, das gesamte auf der Website bereitgestellte Motherboard-Kit zu installieren, um zu überprüfen, ob dies das Problem war.

    Dieses Beispiel zeigt das Finden von Treibern für das Motherboard. Wenn Sie alle Treiber und Dienstprogramme dafür installieren, sollte das „Unbekannte Gerät“ aus dem Geräte-Manager verschwinden.

    Suchen wir nun den Treiber für die Grafikkarte. Nach den Daten aus den Programmen Aida64 und Sysinfo Detector zu urteilen, ist der Hersteller der Grafikkarte NVIDIA und das Modell GeForce GT 430. Da der Hersteller NVIDIA ist, suchen wir in derselben nach der offiziellen Website dieses Unternehmens Weg über Google:

    Auf der Website sehen wir sofort den Abschnitt „Treiber“ und darin den Punkt „Treiber herunterladen“. Wir öffnen:

    Es öffnet sich ein Fenster, in dem Sie Daten zur Grafikkarte angeben müssen. Der Produkttyp in meinem Beispiel ist „GeForce“, wenn das Modell GeForce GT 430 ist, dann ist die Produktserie „GeForce 400 Series“. Es ist nicht schwer, sich hier zu orientieren. Wählen Sie als Nächstes in der Liste „Produktfamilie“ das spezifische Modell aus – „GeForce GT 430“. Und Sie müssen nur noch die auf Ihrem Computer installierte Windows-Version und die Sprache des Treibers auswählen. Klicken Sie dann auf „Suchen“:

    Die Seite zum Herunterladen des richtigen Treibers wird geöffnet. Klicken Sie auf die Schaltfläche „Jetzt herunterladen“:

    Auf der nächsten Seite akzeptieren wir die Vertragsbedingungen und klicken auf die Schaltfläche „Akzeptieren und herunterladen“:

Auf die gleiche Weise können Sie im Prinzip für jedes Gerät einen Treiber herunterladen, wenn Sie dessen Hersteller und Modell kennen. Es ist nur erforderlich, die offizielle Website des Herstellers zu finden und dort das Modell anzugeben.

Wenn Sie beispielsweise auf der offiziellen Website keine Treiber finden, können Sie als letzten Ausweg auf anderen Websites nach ihnen suchen, indem Sie angeben Google-Suche Eine Beispielanforderung ist: „Treiber für Asus P5KPL-AM EPU“. Anstelle von Asus P5KPL-AM EPU müssen Sie dementsprechend den Hersteller und das Modell Ihres speziellen Geräts angeben, für das Sie nach Treibern suchen.

Abschließend stelle ich fest, dass Sie höchstwahrscheinlich keine Probleme mit Treibern haben werden, wenn Sie Windows 8 und älter verwenden. Diese Systeme installieren in den meisten Fällen alle Treiber automatisch sofort nach der Installation von Windows. Ich habe versucht, Windows 8.1 und Windows 10 auf mehreren Laptops neu zu installieren, und alle Treiber wurden automatisch auf jedem installiert, sodass ich sie nicht selbst suchen musste.

Diesen Artikel betrachte ich als abgeschlossen. Jetzt können Sie den richtigen Treiber anhand des Gerätecodes oder anhand seines Herstellers und Modells finden. Ich möchte Sie daran erinnern, dass Sie solche Treibersuchoptionen möglicherweise benötigen, wenn Sie Komponenten für Ihren Computer unabhängig ausgewählt oder einige Details in einem fertig gekauften Computer geändert haben.

Es ist auch möglich, Treiber mithilfe spezieller Programme automatisch auf einem Computer zu installieren. Diese Möglichkeit wird in einem separaten Artikel beschrieben:

Alles Gute! Wir sehen uns in anderen Beiträgen :)

Heute schauen wir uns an:

Es gibt verschiedene Gründe, warum Sie einen Personal Computer benötigen. Dies geschieht nicht immer mit Programmen mit automatischer Treiberauswahl.

Außerdem was Soundtreiber für Ihren PC notwendig ist, müssen Sie auch die Gründe für die Verschlechterung der Soundgeräte auf Ihrem Computer kennen.

Soundkarte wird vom Betriebssystem nicht erkannt

Betrachten wir Fälle, in denen das Betriebssystem keinen Treiber für die Soundkarte eines PCs selbstständig auswählen kann. Bei der Neuinstallation des Systems und dem weiteren Neustart wird dies durch das Fehlen von Tonsignalen bestimmt.

Der Grund für die Schaffung einer solchen Situation kann der etablierte sein Tonausrüstung auf einem PC, was: selten ist; Das Veröffentlichungsdatum ist älter als das installierte Betriebssystem.
In diesem Fall müssen Sie den Soundtreiber manuell installieren. Es gibt mehrere Möglichkeiten, den richtigen Soundtreiber für Ihren PC zu ermitteln.

Microsoft hilft bei der Identifizierung eines Soundtreibers

Das Betriebssystem des Computers bietet seine Hilfestellung bei der Ermittlung des richtigen Soundtreibers an. Es ist notwendig, den Cursor auf den Ordner "Arbeitsplatz" zu richten, klicken rechte Taste Maus (RMB), dann "Eigenschaften", dann "Hardware". Sie können es einfacher machen: Klicken Sie mit der rechten Maustaste auf den Ordner „Arbeitsplatz“, gehen Sie zum Abschnitt Geräte-Manager.

Im Geräte-Manager öffnet sich eine Liste, wählen Sie eine Soundkarte aus (es gibt keinen Treiber, daneben steht ein Ausrufezeichen). Wir wählen die Zeile aus, oben gibt es die Option "Treiber aktualisieren", dann den Punkt "Treiber suchen", wenn alles mit einem positiven Ergebnis passiert, wird das Fenster "Installieren" angeboten.

Manuelle Option zur Suche nach einem Soundtreiber

Wenn die automatische Auswahl eines Soundtreibers fehlschlägt, müssen Sie versuchen, ihn manuell zu finden. Dazu gehen wir zu einer beliebigen Suchmaschine (Google, Yandex). Geben Sie dann im Suchfeld den Namen Ihres Soundgeräts auf dem PC ein und fügen Sie „+ Treiber“ hinzu. Wählen Sie im sich öffnenden Fenster den für uns benötigten aus.

Welcher Treiber wird für einen PC benötigt? Dies ist leicht auf der Registerkarte Geräte-Manager zu sehen. Es wird empfohlen, den Treiber auf der offiziellen Website des Herstellers des installierten Motherboards herunterzuladen (wenn Soundkarte darin eingebettet). Es wird auch empfohlen, den Treiber von einer Website herunterzuladen, die auf die Aktualisierung dieser PC-Hardware spezialisiert ist.

Nachdem der Treiber heruntergeladen wurde, gehen wir zurück zur Registerkarte "Geräte-Manager", öffnen "Auf dem PC nach Treibern suchen", geben den Ort an, an dem er gespeichert wurde, "Installieren".

Installation des Soundtreibers mit dem Programm

Es gibt Zeiten, in denen es für einen Computerbenutzer schwierig ist, einen Soundtreiber manuell und über das Betriebssystem zu finden, dann wird ein spezielles Programm angeboten, um danach zu suchen. Derzeit gibt es mehrere Programme für diese Zwecke: Driver Checker, Sam Drivers, Device Doctor und andere Programme.

Mit der Schnittstelle von Programmen dieser Art zu arbeiten, ist auf einer intuitiven Ebene klar.

Es gibt verschiedene Fälle, in denen Sie den Soundtreiber für Ihren PC bestimmen müssen, raten Experten:

  • Bestimmen Sie das Modell des installierten Soundgeräts auf dem PC (am Computer ablesen). Möglicherweise ist der Tonmangel auf nicht installierte Geräte zurückzuführen, die die Verwendung im BIOS verbieten.
  • Wenn der Sound auf dem PC integriert ist, empfiehlt es sich, den Soundtreiber nur von der Website des "Mainboard"-Herstellers herunterzuladen, oder in dem Fall separate Installation Soundkarte, um die Chipmarkierung davon abzuschreiben. Finden Sie den benötigten Treiber über das Markierungssuchsystem.
  • Es wird empfohlen, das Programm AIDA 64 zu verwenden, es zeigt nicht nur den erforderlichen Soundtreiber, sondern alles installierte Geräte können Sie die Markierung des Chips bestimmen.

Finden Sie heraus, wie Sie die richtigen Treiber finden, um jedes an Ihren Computer angeschlossene Gerät mühelos zu betreiben.

Trotz der Tatsache, dass das 21. Jahrhundert bereits vor der Tür steht und fast jeder Computer besitzt, behandeln viele sie als eine Art unantastbares Wunder der Technologie. Darüber hinaus installieren solche Benutzer im festen Glauben, dass sie den besten PC haben (weil der Verkäufer es so gesagt hat :)), keine Programme darauf und machen sich nicht die Mühe, zu überprüfen, ob der Computer ordnungsgemäß funktioniert ...

Warum bin ich? Außerdem musste ich mich kürzlich mit einem Fall befassen, in dem einige Kameraden nach dem Kauf eines Computers fast anderthalb Jahre lang keinen normalen Grafikkartentreiber hatten !!! Die Beschwerde war die übliche - "" :) Und warum sollte er nicht langsamer werden, wenn kein Fahrer da ist?!

Im Allgemeinen werden wir heute unsere PCs auf das Vorhandensein aller erforderlichen Treiber überprüfen ...

Was ist ein Treiber und wie wird er installiert?

Ein Treiber ist ein Satz von Softwarekomponenten, die die normale Interaktion eines Computers mit daran angeschlossenen Geräten und Erweiterungskarten gewährleisten. Mit anderen Worten, dies ist ein spezielles Dienstprogramm, das Befehle von der Peripherie zum Prozessor und umgekehrt übertragen kann.

Ohne Treiber funktionieren die angeschlossenen Geräte entweder überhaupt nicht (Drucker, Scanner und andere Bürogeräte) oder funktionieren, aber nicht im optimalen Modus (Grafikkarten, Chipsätze usw.). Deshalb für normale Operation Es reicht nicht aus, das System für einen PC nur neu zu installieren, es ist auch wichtig, Treiber für alle seine Komponenten zu finden!

Der Treiber kann in drei Versionen geliefert werden:

  1. Installation EXE-Datei(oder MSI);
  2. grafische Shell mit der Möglichkeit der Massenauswahl und -installation;
  3. eine Reihe von Bibliotheken und Servicedateien, ergänzt durch eine INF-Datei.

Die erste Option zum Bereitstellen von Treibern finden Sie am häufigsten im Internet und auf den Installationsdisketten, die mit den von Ihnen gekauften Geräten geliefert werden. Es reicht aus, die EXE-Datei herunterzuladen (oder auf der Festplatte zu öffnen) und auszuführen, und der Installationsassistent wird vor uns angezeigt, mit dem Sie alles Schritt für Schritt konfigurieren können. In diesem Fall ist die Installation des Treibers nicht schwieriger als die Installation eines Programms.

Die zweite Lieferoption findet sich auf Datenträgern mit verschiedenen Assemblies, die mehrere unterschiedliche Treiber enthalten (zB Treiber für das Motherboard oder die sogenannten Driver Packs). Solche Assemblies ermöglichen es Ihnen normalerweise, einzelne (oder alle auf einmal) Treiber selektiv zu installieren und sind nicht komplizierter als die üblichen Installer, aber sie sind umfangreich.

Die Installation des Treibers auf die dritte Art ist die nicht offensichtlichste. Solche Treiber werden oft für alte Technologie gefunden und enthalten kein grafisches Installationsprogramm, aber sie enthalten eine Datei (manchmal mehr als eine) mit der INF-Erweiterung, die alle Installationspfade für das Bibliothekspaket enthält, damit die angeschlossenen Geräte funktionieren:

Um den Treiber auf diese Weise zu installieren, müssen Sie das Kontextmenü im "Geräte-Manager" aufrufen (Symbol "Computer" - RMB - "Eigenschaften" (bei älteren Systemen Registerkarte "Hardware")) unbekanntes Gerät und wählen Sie dann „Treiber aktualisieren“.

Es öffnet sich ein Fenster, in dem wir diesen Weg gehen müssen (indem wir auf die entsprechenden Schaltflächen klicken): "Auf diesem Computer nach Treibern suchen" - "Einen Treiber aus der Liste der bereits installierten auswählen" - "Von Datenträger installieren" und dann Klicken Sie auf die Schaltfläche „Durchsuchen“ und geben Sie den Speicherort der benötigten INF-Datei an:

Nachdem Sie die Auswahl der INF-Datei bestätigt haben, erscheint eine Meldung entweder über die erfolgreiche Installation oder dass die ausgewählte Datei nicht geeignet ist und Sie eine andere auswählen müssen (falls vorhanden). Wenn Sie mit keiner der INF-Dateien den richtigen Treiber installieren können, müssen Sie nach alternativer Software suchen oder sogar die Hardware oder das System ändern, um das Gerät mit Ihrem PC kompatibel zu machen.

Nun, da Sie wissen, was ein Treiber ist, warum Sie ihn brauchen und wie Sie ihn installieren, ist es an der Zeit, herauszufinden, wie Sie Treiber finden.

Suche nach Gerätenamen

Jedes Gerät (wenn es sich nicht um ein unbenanntes chinesisches Fahrzeug handelt) hat seinen eigenen Namen. Wenn Sie diesen Namen und die Version Ihres Systems kennen, können Sie in den meisten Fällen den richtigen formulieren Suchanfrage einzutreten Suchmaschine. Zum Beispiel: „Fahrer Canon-Drucker IP1500 für Windows 7 64-Bit“ oder „Radeon HD 8700M Windows 8-Treiber“.

Die Suchergebnisse enthalten Websites, von denen Sie den benötigten Treiber herunterladen können. Allerdings können nicht alle Websites kostenlos heruntergeladen werden! Um unnötige Sorgen wegen Finanzen oder der Installation minderwertiger Software zu vermeiden, empfehle ich Ihnen, ein bewährtes russischsprachiges Portal zu verwenden:

Diese Seite enthält eine von komplette Sammlungen Treiber aus dem gesamten Internet mit einem Gesamtvolumen von über 300 TB! Hier können Sie einen Treiber sowohl nach Gerätetyp (Hauptliste „Hardware-Kategorien“) als auch nach Herstellername (alphabetischer Index oben auf der Seite) suchen.

Auf der Seite mit der benötigten Komponente gibt es eine Reihe von Download-Möglichkeiten. Achten Sie auf die Felder "Programmtyp" (das Wort "Treiber" muss dort vorhanden sein, sonst können Sie einfach ein Service-Dienstprogramm oder Plug-In herunterladen), "Beschreibung" (es sagt auch, wofür diese oder jene Datei ist), und auch "System". Sie können den Treiber selbst über den Link nach der Beschreibung herunterladen und bestätigen, dass Sie kein Roboter sind :)

Zusätzlich zur Suche nach Treibern in spezialisierten Repositories ist es manchmal sinnvoll, auf Entwicklerseiten zu suchen! Beispielsweise werden Treiber für beliebte Grafikkarten ziemlich oft aktualisiert und heruntergeladen letzte Version Sie können oft nur auf der offiziellen Website. Daher werde ich eine kleine Liste mit Links zum Herunterladen von Seiten für Treiber von den häufigsten Wahnvorstellungen geben.

Grafikkarten:

Soundkarten:

Büroausstattung:

Indem Sie Treiber von vertrauenswürdigen Quellen herunterladen, müssen Sie sich keine Sorgen machen, dass sie nicht funktionieren oder Viren enthalten. Der Vorteil des Herunterladens von offiziellen Seiten ist auch die Garantie, dass Sie die aktuellsten und frischesten Treiber herunterladen, was leider nicht garantiert werden kann, wenn Sie von Ressourcen von Drittanbietern herunterladen.

Suche nach Geräte-ID

Einen Treiber mit dem Namen Ihres Geräts zu finden, ist eine ziemlich einfache Aufgabe. Wenn das Gerät selbst jedoch von einem unbekannten Hersteller stammt, können wir auch seinen Namen nicht kennen! Wenn Sie mit einer solchen Situation konfrontiert sind, hilft Ihnen eine alternative Suchmethode - nach Betriebsmittelkennzeichen.

Jedes Gerät, sogar drinnen Systemblock, obwohl über ein externes Kabel verbunden, hat im System eine eigene Kennung oder ID. Wir erkennen es im bereits bekannten „Geräte-Manager“, indem wir die „Eigenschaften“ der gewünschten Komponente aufrufen, auf den Reiter „Details“ gehen und im Drop-down „Eigenschaft“ den Punkt „Hardware-ID“ bzw. „ID“ auswählen Liste:

Mit ... anfangen Windows Vista, Über das Kontextmenü können Sie den Wert des Bezeichnerstrings in die Zwischenablage kopieren. In früheren Versionen gibt es keine Kopierfunktion, sodass die ID manuell neu geschrieben werden muss.

Da wir jetzt die Kennung des benötigten Geräts kennen, können wir mit spezialisierten Diensten geeignete Treiber dafür finden. Auch hier kann uns das bereits erwähnte Driver.ru weiterhelfen:

Klicken Sie dazu auf die Schaltfläche "Suchen" in der oberen rechten Ecke und fügen Sie die kopierte Geräte-ID in das Feld auf der sich öffnenden Seite ein. Aktivieren Sie dann den Punkt "Suche nach ID" und klicken Sie auf die Schaltfläche "Suchen" darunter das Eingabefeld. Unter den sich öffnenden Ergebnissen können Sie leicht einen für Ihr System geeigneten Treiber finden und herunterladen.

Mehrere weitere große Portale für die Suche nach Fahrern funktionieren ähnlich. Die besten sind DevID.info und DevID.drp.su. Übrigens haben beide Dienste ihre eigenen Clients, mit denen Sie die benötigten Treiber automatisch erkennen und installieren können. Wir werden weiter über solche spezialisierte Software sprechen.

Programme zum Finden von Treibern

Oben haben wir Fälle betrachtet, in denen Sie manuell nach Treibern suchen müssen. Dafür gibt es aber auch spezielle Programme, mit denen Sie alles automatisch finden und herunterladen können. Alle von ihnen können in zwei Arten unterteilt werden.

Programme des ersten Typs sind normalerweise kleine (bis zu zehn Megabyte) Client-Module, mit denen Sie Ihren Computer nach veralteten oder nicht installierten Treibern durchsuchen und diese dann aus dem Internet herunterladen und mit wenigen Klicks installieren können. Auf unserer Website ist ein prominenter Vertreter solcher Programme:

Allerdings die Mehrheit ähnliche Entscheidungen Es gibt ein großes Minus: Sie können nur ein paar Treiber pro Tag kostenlos herunterladen. Wenn Sie das Limit überschreiten, werden Sie entweder komplett vom Download ausgeschlossen oder die Downloadgeschwindigkeit wird auf ein Minimum reduziert, sodass Sie am Ende trotzdem einen Premium-Account kaufen.

Aus diesem Grund können solche Programme nur für ein einzelnes Treiber-Update kostenlos genutzt werden, nicht aber für eine Batch-Installation auf einem frisch installierten Windows. Wenn Sie alles auf einmal wollen, wählen Sie Treiberpakete!

Treiberpaket (aus dem Englischen. " Treiberpaket"-" ein Satz von Treibern ") ist meistens ein Satz einer Offline-Datenbank mit ausgewählten Treibern und einem Shell-Programm. Das Programm scannt Ihren PC und bietet anschließend an, eine Reihe von Treibern zu installieren oder zu aktualisieren. Sie brauchen nur um die gewünschten zu markieren und Ihre Auswahl zu bestätigen. Die Installation erfolgt automatisch!

In der Weite von Runet ist das vollständigste und beliebteste Treiberpaket:

Bis heute beträgt die Größe des maximalen Lieferpakets dieses Treiberpakets mehr als 10 Gigabyte. Das ist nicht so beeindruckend wie die 30-Terabyte-Datenbank von Driver.ru, aber dennoch reicht eine solche Anzahl von Treibern völlig aus, damit Sie nach einer Neuinstallation des Systems nicht suchen müssen Installationsdisketten das kam mit Hauptplatine, Grafikkarte und andere Komponenten Ihres PCs oder Laptops.

Wenn Sie keine 10 Gigabyte an Treibern herunterladen möchten, können Sie die Lite-Version von DriverPack Online herunterladen. Es ist nur ein Scannerprogramm, das die benötigten Treiber ermittelt, eine Verbindung zu einer Online-Datenbank herstellt und es Ihnen ermöglicht, nur das herunterzuladen, was Sie benötigen.

Schlussfolgerungen

Heutzutage ist es nicht schwierig, Treiber für einen Computer und einen Laptop zu finden. Wie jedes Programm benötigen sie jedoch von Zeit zu Zeit Updates, die viele Leute vergessen. Und übrigens, Updates können sehr helfen!

So tauchte beispielsweise seit dem Frühjahr von Zeit zu Zeit "" mit Beschwerden über eine Art DLL-Bibliothek auf. Eine Zeit lang habe ich diesen Zustand ertragen, aber dann wurde ich müde und beschloss, nach einer Lösung für das Problem zu suchen. Es stellte sich heraus, dass der Übeltäter ein Fehler im Grafikkartentreiber war. Nach der Aktualisierung des Treibers wurde alles besser und seit einigen Monaten ist der "Flug" normal :)

Die Moral von all dem ist folgende: Wenn Sie plötzlich "Störungen" in Ihrem PC haben oder diese seit dem Kauf des Computers beobachtet wurden / Windows neu installieren, suchen Sie nach Treiberaktualisierungen für kritisch wichtige Komponenten dein PC. Wenn es welche gibt, versuchen Sie sie zu installieren und vielleicht funktioniert Ihr System wieder richtig!

P.S. Es ist erlaubt, diesen Artikel frei zu kopieren und zu zitieren, sofern ein offener aktiver Link zur Quelle angegeben und die Urheberschaft von Ruslan Tertyshny gewahrt bleibt.

Wahrscheinlich hatte jeder, der das Betriebssystem mindestens einmal selbst neu installiert hat, eine beliebte Frage: Wie kann man herausfinden, welche Treiber für einen stabilen Betrieb auf dem Computer installiert werden müssen? Diese Frage versuchen wir in diesem Artikel zu beantworten. Lassen Sie uns genauer verstehen.

Theoretisch müssen Sie Software für alle Geräte installieren, die sie auf einem Computer oder Laptop benötigen. Im Laufe der Zeit Entwickler Betriebssysteme ständige Erweiterung der Datenbank von Microsoft-Treibern. Und wenn drin Windows-Zeiten XP musste fast alle Treiber manuell installieren, aber bei neueren Betriebssystemen werden viele Treiber bereits automatisch installiert. Allerdings gibt es Geräte, bei denen Software manuell installiert werden muss. Wir machen Sie auf eine Reihe von Möglichkeiten aufmerksam, die Ihnen bei der Lösung dieses Problems helfen werden.

Methode 1: Offizielle Websites der Hersteller

Um alle erforderlichen Treiber zu installieren, müssen Sie die Software für alle Karten auf Ihrem Computer installieren. Dies bezieht sich auf Motherboard, Grafikkarte und externe Boards ( Netzwerkadapter, Soundkarten usw.). Gleichzeitig im "Gerätemanager" es weist möglicherweise nicht darauf hin, dass die Hardware Treiber benötigt. Bei der Installation des Betriebssystems wurde einfach die Standardsoftware des Geräts verwendet. Software für solche Geräte muss jedoch original installiert werden. Der Großteil der installierten Software fällt auf das Mainboard und die darin integrierten Chips. Daher suchen wir zuerst nach allen Treibern für das Motherboard und dann nach der Grafikkarte.

  1. Finden Sie den Hersteller und das Modell des Motherboards heraus. Drücken Sie dazu die Tasten Win+R Geben Sie auf der Tastatur und im sich öffnenden Fenster den Befehl ein cmd um eine Befehlszeile zu öffnen.
  2. IN Befehlszeile Sie müssen die Befehle nacheinander eingeben:
    wmic baseboard bekommen Hersteller
    Wmic Baseboard Produkt erhalten
    Drücken nicht vergessen "Eingeben" nach jedem eingegebenen Befehl. Als Ergebnis sehen Sie auf dem Bildschirm den Hersteller und das Modell Ihres Motherboards.
  3. Nun suchen wir im Internet nach der Herstellerseite und gehen darauf zu. In unserem Fall ist dies .
  4. Auf der Seite suchen wir nach einem Suchfeld oder dem entsprechenden Button in Form einer Lupe. In der Regel sehen Sie nach einem Klick auf diesen Button ein Suchfeld. In diesem Feld müssen Sie das Modell des Motherboards eingeben und klicken "Eingeben".
  5. Auf der nächsten Seite sehen Sie das Suchergebnis. Sie müssen Ihr Motherboard aus der Liste auswählen. Normalerweise gibt es mehrere Unterabschnitte unter dem Namen des Board-Modells. Wenn es einen Abschnitt gibt "Fahrer" oder "Herunterladen", klicken Sie auf den Namen eines solchen Abschnitts und gehen Sie dorthin.
  6. In einigen Fällen kann die folgende Seite in Software-Unterabschnitte unterteilt sein. Wenn ja, dann suchen und wählen Sie einen Unterabschnitt aus "Fahrer".
  7. Im nächsten Schritt wählen Sie das Betriebssystem und die Bittiefe aus der Dropdown-Liste aus. Bitte beachten Sie, dass es in einigen Fällen bei der Auswahl eines anderen Betriebssystems zu Unterschieden in den Treiberlisten kommen kann. Sehen Sie sich daher nicht nur das von Ihnen installierte System an, sondern auch die darunter liegenden Versionen.
  8. Nachdem Sie das Betriebssystem ausgewählt haben, sehen Sie eine Liste aller Software, die Ihr Motherboard benötigt, um mit anderen Computerkomponenten zu interagieren. Sie müssen sie alle herunterladen und installieren. Der Download erfolgt automatisch nach Klick auf den Button, Herunterladen oder das entsprechende Symbol. Wenn Sie das Archiv mit den Treibern heruntergeladen haben, müssen Sie vor der Installation unbedingt den gesamten Inhalt in einen separaten Ordner extrahieren. Installieren Sie danach die Software.
  9. Nachdem Sie die gesamte Software für Ihr Motherboard installiert haben, gehen wir zur Grafikkarte über.
  10. Drücken Sie die Tastenkombination erneut Win+R Geben Sie im angezeigten Fenster den Befehl ein "dxdiag". Klicke um Fortzufahren "Eingeben" oder Taste "OK" im selben Fenster.
  11. Wechseln Sie im sich öffnenden Diagnosetool-Fenster zur Registerkarte "Bildschirm". Hier erfahren Sie Hersteller und Modell Ihrer Grafikkarte.
  12. Wenn Sie einen Laptop haben, müssen Sie auch zur Registerkarte gehen "Konverter". Hier sehen Sie Informationen zur zweiten diskreten Grafikkarte.
  13. Nachdem Sie den Hersteller und das Modell Ihrer Grafikkarte herausgefunden haben, müssen Sie auf die offizielle Website des Unternehmens gehen. Hier ist eine Liste der Downloadseiten der großen Grafikkartenhersteller.
  14. Auf diesen Seiten müssen Sie das Modell Ihrer Grafikkarte und das Betriebssystem mit Bitness angeben. Danach können Sie die Software herunterladen und installieren. Bitte beachten Sie, dass es vorzuziehen ist, die Software für den Grafikadapter von der offiziellen Seite zu installieren. Nur in diesem Fall werden spezielle Komponenten installiert, die die Leistung der Grafikkarte erhöhen und eine Feinabstimmung ermöglichen.
  15. Wenn Sie die Software für den Grafikadapter und das Motherboard installieren, müssen Sie das Ergebnis überprüfen. Dafür öffnen wir "Gerätemanager". Drücken Sie eine Tastenkombination Gewinnen Und "R" Geben Sie auf der Tastatur und im sich öffnenden Fenster den Befehl devmgmt.msc ein. Danach drücken wir "Eingeben".
  16. Als Ergebnis sehen Sie ein Fenster "Gerätemanager". Es sollte keine nicht identifizierten Geräte und Ausrüstungen enthalten, neben deren Namen Fragen oder stehen Ausrufezeichen. Wenn dies der Fall ist, haben Sie alle erforderlichen Treiber installiert. Und wenn solche Komponenten vorhanden sind, empfehlen wir die Verwendung einer der folgenden Methoden.

Methode 2: Dienstprogramme zur automatischen Softwareaktualisierung

Wenn Sie zu faul sind, die gesamte Software manuell zu suchen und zu installieren, sollten Sie sich Programme genauer ansehen, die diese Aufgabe erleichtern sollen. Wir haben die beliebtesten Programme zum automatischen Suchen und Aktualisieren von Software in einem separaten Artikel überprüft.

Sie können jedes der beschriebenen Dienstprogramme verwenden. Wir empfehlen jedoch weiterhin die Verwendung von DriverPack Solution oder Driver Genius. Dies sind die Programme mit der größten Datenbank an Treibern und unterstützter Hardware. Wir haben Ihnen bereits erklärt, wie Sie DriverPack Solution verwenden.

Lassen Sie sich daher erklären, wie Sie alle Treiber mit dem Programm Driver Genius finden und installieren. Fangen wir also an.

  1. Wir starten das Programm.
  2. Sie werden sich sofort auf ihr wiederfinden Startseite. In der Mitte befindet sich ein grüner Knopf "Prüfung starten". Wir drücken mutig darauf.
  3. Der Scanvorgang Ihres Computers oder Laptops wird gestartet. Nach einigen Minuten sehen Sie eine Liste aller Geräte, für die Sie Software herunterladen und installieren müssen. Da wir keinen bestimmten Fahrer suchen, prüfen wir alle verfügbaren Artikel. Drücken Sie danach die Taste "Weiter" unten im Programmfenster.
  4. Im nächsten Fenster sehen Sie eine Liste der Geräte, für die Treiber bereits mit diesem Dienstprogramm aktualisiert wurden, und der Geräte, für die die Software noch heruntergeladen und installiert werden muss. Der letzte Gerätetyp ist mit einem grauen Kreis neben dem Namen gekennzeichnet. Für Zuverlässigkeit drücken Sie einfach die Taste "Alles herunterladen".
  5. Danach versucht das Programm, eine Verbindung zu den Servern herzustellen, um die erforderlichen Dateien herunterzuladen. Wenn alles gut geht, kehren Sie zum vorherigen Fenster zurück, wo Sie den Fortschritt des Software-Downloads in der entsprechenden Zeile verfolgen können.
  6. Wenn alle Komponenten heruntergeladen sind, wird das Symbol neben dem Gerätenamen grün mit einem Abwärtspfeil. Leider funktioniert die Installation der gesamten Software mit einem Knopfdruck nicht. Wählen Sie daher die Zeile mit dem erforderlichen Gerät aus und drücken Sie die Taste "Installieren".
  7. Erstellen Sie optional einen Wiederherstellungspunkt. Dazu werden Sie im nächsten Dialogfenster aufgefordert. Wählen Sie die Antwort, die Ihrer Entscheidung entspricht.
  8. Danach beginnt der Treiberinstallationsprozess für das ausgewählte Gerät, bei dem Standarddialogfelder angezeigt werden können. In ihnen müssen Sie nur die Lizenzvereinbarungen lesen und die Tasten drücken "Weiter". In dieser Phase sollten Sie keine Probleme haben. Nach der Installation dieser oder jener Software werden Sie möglicherweise aufgefordert, das System neu zu starten. Wenn eine solche Meldung erscheint, empfehlen wir Ihnen, dies zu tun. Wenn der Treiber erfolgreich installiert wurde, Treiberprogramm Genius neben der Zeile mit der Ausrüstung wird ein grünes Häkchen sein.
  9. Daher müssen Sie Software für alle Geräte aus der Liste installieren.
  10. Am Ende können Sie den Computer erneut scannen, um zu überzeugen. Wenn Sie alle Treiber installiert haben, sehen Sie eine ähnliche Meldung.
  11. Außerdem können Sie überprüfen, ob alle Software mit installiert ist "Gerätemanager" wie am Ende der ersten Methode beschrieben.
  12. Wenn immer noch nicht identifizierte Geräte vorhanden sind, versuchen Sie die folgende Methode.

Methode 3: Onlinedienste

Wenn Ihnen die bisherigen Methoden nicht geholfen haben, bleibt auf diese Option zu hoffen. Seine Bedeutung ist, dass wir manuell anhand einer eindeutigen Gerätekennung nach Software suchen. Um Informationen nicht zu duplizieren, empfehlen wir Ihnen, sich mit unserer Lektion vertraut zu machen.

Darin finden Sie detaillierte Informationen, wie Sie die ID finden und was Sie als Nächstes damit tun können. Sowie eine Anleitung zur Nutzung der beiden größten Online-Fahrersuchdienste.

Methode 4: Manuelle Treiberaktualisierung

Diese Methode ist die ineffizienteste aller oben genannten. In sehr seltenen Fällen ist er es jedoch, der bei der Installation der Software helfen kann. Hier ist, was es braucht.


Das sind die meisten effektive Wege Bestimmen Sie die Geräte, für die Sie die Software installieren müssen. Wir hoffen, dass eine der vorgeschlagenen Optionen Ihnen bei der Lösung dieses Problems helfen wird. Vergessen Sie nicht, die Software für Ihre Geräte rechtzeitig zu aktualisieren. Wenn Sie Schwierigkeiten haben, Treiber zu finden oder zu installieren, schreiben Sie in die Kommentare. Gemeinsam werden wir alles reparieren.

Wie wir wissen, auf Hardwareebene moderner Rechner besteht aus Funktionseinheiten, die bestimmte elektronische Komponenten sind. Breites Spektrum an Benutzern persönliche Computer vertraut mit Funktionsblöcken wie: Prozessor, Speicher, Grafikkarte, Soundkarte, Festplatte, E / A-Controller (für den Betrieb von Tastatur, Maus, Joystick, USB-Medien (Flash-Laufwerke)), Drucker, Scanner und einige andere. Auf der physikalischen Ebene interagieren diese Geräte über spezielle Busse und Protokolle miteinander, wodurch eine Kombination ihrer Interaktion mit einer Symbiose von Operationen entsteht, die im Allgemeinen die Funktionsweise eines Computers charakterisiert. Aber ein Computer ist nur eine Ansammlung von elektronische Bauteile? Natürlich nicht, denn eines der Haupthardwaremodule, Zentralprozessor, dazu bestimmt ist, Maschinenbefehle auszuführen, aus deren Sequenzen bekanntlich Programme bestehen, angesichts dessen wäre es angebracht, eine weitere Ebene zu erwähnen - Software. Gehen wir jetzt zurück in die nicht allzu ferne Vergangenheit; In den frühen Tagen des Computerzeitalters konnte Programmcode (der oft direkt in Maschinencodes / Low-Level-Sprachen geschrieben wurde) problemlos direkt mit Hardware interagieren, da die Hardwarearchitektur relativ einfach war. Im Laufe der Zeit haben sich jedoch Technologien weiterentwickelt, die Hardware- und Softwareebenen haben sich miteinander verbunden entwickelt, und die erste führte zur Entstehung einer großen Vielfalt von Geräten und die zweite zur Entstehung einer großen Vielfalt Softwaremodule, was später zur Entstehung von Betriebssystemen führte. Das Betriebssystem war ein entscheidender Meilenstein in der Entwicklungsgeschichte der Computerindustrie, da es unter anderem als Bindeglied, als eine Art Koordinator (Dispatcher) für das Zusammenspiel von Geräten und Programmen sorgte: Es akzeptierte Anfragen aus der Softwareschicht (z. B. Anwenderprogramme) zum Datenaustausch mit diesem oder jenem Gerät und umgekehrt, diente also eigentlich als Schnittstelle zwischen Hardware- und Softwareteilen. Auch Betriebssysteme standen nicht still, und war die Interaktion des Betriebssystems mit der Computerhardware zunächst relativ einfach, dann wurde die Struktur des Betriebssystems komplizierter, als die Architektur komplexer wurde und neue Hardwarefähigkeiten eingeführt wurden. Während der gesamten Entwicklung von Betriebssystemen haben Entwickler versucht, Code zu erstellen, der eine vollständige Interaktion mit der maximal möglichen Anzahl von auf dem Markt erhältlichen Hardwaregeräten ermöglicht. Als die Architektur von x86-Personalcomputern immer komplexer wurde, führte ein solcher Ansatz jedoch zur Entstehung des Konzepts einer separaten Softwareschicht, die als Treiber bezeichnet wird und für die Interaktion mit einer bestimmten Klasse / einem bestimmten Gerätetyp verantwortlich ist. Das Treiberkonzept erwies sich als so erfolgreich, dass es neben der Hauptrichtung – Unterstützung für physische Geräte – auf einige Kategorien von logischen/virtuellen Geräten extrapoliert wurde. In diesem Artikel werden wir darüber sprechen, was es ist Windows-Treiber.

Theorie

Lassen Sie uns ein wenig vom Konzept eines Treibers wegkommen und uns die allgemeine Theorie ansehen. Um zu verstehen, was ein Treiber in einem System ist, müssen Sie zunächst ein Minimum an Theorie über die allgemeine x86-64-Architektur durchgehen. Warum x86, ja, weil gerade diese Plattform: a) von mir für Experimente gewählt wurde, b) am häufigsten im Client-Segment betrieben wird Windows-Systeme. Die in diesem Abschnitt geäußerten Funktionen geben uns ein Verständnis für viele Aspekte der Arbeit sowohl des Betriebssystems selbst als auch der Treiber in seiner Zusammensetzung.

Betriebsmodi des Prozessors

Die interne Struktur eines jeden Betriebssystems basiert auf den Hardwaremerkmalen der Plattform, auf der es ausgeführt wird. Das zentrale Bindeglied ist der Prozessor, Prozessoren mit x86-64-Architektur haben mehrere Betriebsmodi:

  • Real-Modus;
  • Virtueller Modus (virtueller Modus);
  • Sicherheitsmodus;
  • Langer Modus (Long-Modus).

Zu Beginn der Ära der Entwicklung von PCs mit x86-Architektur arbeitete der Prozessor im Realmodus. Trotzdem gehörte der Real-Modus allmählich der Vergangenheit an, da er eine Reihe von Merkmalen aufwies, die eine Weiterentwicklung von Technologien unmöglich machten: einen 16-Bit-Datenbus und einen 20-Bit-Adressbus (Adressierungsbeschränkung), Segmentadressierung mit Segmentgrößen von 64 Kilobyte (Unannehmlichkeiten bei der Verwendung des Adressraums), fehlende Zugriffsbeschränkungen auf den Adressraum. Um die bestehenden Einschränkungen aufzuheben, wurde ein geschützter Modus entwickelt, der eine Reihe von Funktionen bereitstellt, die für die Entwicklung von Betriebssystemen wichtig sind: "Multitasking", ein Schutzmechanismus (Zugriff auf privilegierte Befehle), der den Zugriff auf unterschiedlichen Code steuert Abschnitte (Programme) zueinander, ein Modell virtueller Speicher. Im geschützten Modus Intel-Prozessoren x86-Architekturen implementieren sogenannte Schutzringe oder Berechtigungsstufen. Es gibt vier davon: 0 (am privilegiertesten), 1, 2 und 3 (am wenigsten privilegiert). Berechtigungsstufen sollen Kernelmoduscode vor Benutzerprogrammen und Benutzerprogramme voreinander schützen, da dies zu Beschädigungen führen kann. Das Windows-Betriebssystem verwendet jedoch nicht alle aufgeführten Ebenen, nur zwei davon sind daran beteiligt: ​​0 und 3.
Zum besseren Verständnis präsentieren wir ein vereinfachtes Diagramm der Interaktion von Windows-Komponenten:

Wie Sie sehen können, ist die interne Umgebung des Windows-Betriebssystems in zwei Teile unterteilt und unterstützt zwei Ausführungsmodi:

  • Benutzermodus- unprivilegierter Modus, verbunden mit dem Hardware-Schutzring des 3. Prozessors;
  • Der Kernel-Modus ist ein privilegierter Modus, der dem Schutzring des 0. Prozessors der Hardware zugeordnet ist;

Diese Funktion ist vielleicht der wichtigste Punkt, um die interne Struktur von Windows zu verstehen: Global gesehen ist das Betriebssystem sozusagen in zwei Hauptteile unterteilt: den Benutzermodus und den Kernelmodus.

Es lohnt sich, es ein für alle Mal zu verstehen, zu erkennen und sich daran zu erinnern, denn dies ist tatsächlich eines der grundlegenden, grundlegenden Konzepte so vieler moderner Betriebssysteme.
Benutzermodi und Kernelmodus haben die folgenden Unterschiede:

  • Isolierte (nicht überlappende) virtuelle Adressräume: Benutzermodusraum belegt den unteren Teil (Adressen von bis), Kernelmodusraum belegt den oberen Teil (Adressen von bis);
  • Unterschiedliche Code-Zugriffsrechte auf Ressourcen (Speicher, Prozessor, Geräte usw.).

Die folgenden Prozesse werden im Benutzermodus ausgeführt:

Teilsystem Beschreibung
Systemunterstützungsprozesse
  • Winlogon-Anmeldeprozess (winlogon.exe )
  • Verfahren lokaler Server lsass-Authentifizierung (lsass.exe )
  • Service Control Manager-Prozess (services.exe )
  • Sitzungs-Manager-Prozess (smss.exe )
  • Konsolenprozess (conhost.exe )
  • Lokaler Sitzungs-Manager-Prozess (lsm.exe )
  • . . .
Serviceprozesse
  • Hostprozess für Dienste (svchost.exe )
  • Spooler-Prozess (spoolsv.exe )
  • WMI-Dienstverwaltungsprozess (winmgmt.exe )
  • . . .
Anwendungen
  • Benutzeranwendungen (alle Anwendungen, die nicht in den anderen Kategorien enthalten sind).
  • Task-Manager (taskmgr.exe )
  • Explorer (explorer.exe)
  • Verwaltungskonsole (mmc.exe )
  • . . .
Umgebungs-Subsysteme
  • Win32-Subsystem (csrss.exe , kernel32.dll , advapi32.dll , user32.dll , gdi32.dll , ...)
  • Linux-Subsystem (lxss.sys , lxcore.sys )
  • POSIX-Subsystem (psxss.exe , psxrun.exe , posix.exe , psxdll.dll )
  • OS/2-Subsystem (os2.exe , os2ss.exe , os2srv.exe )
  • WOW/WOW64-Subsystem ( wow64win.dll , wow64.dll , wow64cpu.dll )
  • . . .
Schnittstelle zu Kernelfunktionen
  • Bietet die Übertragung der Steuerung an den Kernel für Funktionen, die dies erfordern. Unterstützt von ntdll.dll

Im Kernelmodus:

Teilsystem Beschreibung
Exekutivsystem (Exekutive)
  • E/A-Manager
  • Prozessmanager
  • Thread-Manager
  • Virtueller Speichermanager
  • Objektmanager
  • PnP-Manager
  • Power-Manager
  • Fenstermanager
  • . . .
Kernel Initialisierung von systemkritischen Treibern während der Bootphase, Synchronisation zwischen Prozessoren, Scheduling und Dispatch von Prozessen/Threads/Interrupts, Behandlung/Dispatch von Ausnahmen/Fehlern und einige andere Funktionen (ntoskrnl.exe , ntkrnlmp.exe , ntkrnlpa.exe , ntkrpamp .exe).
Gerätetreiber physische/logische/virtuelle Gerätetreiber: Dateisystem-, Netzwerk-, Festplatten- und andere Treiber.
Windowing / Grafik-Subsystem (Windowing And Graphics System) Windowing- und Grafikunterstützungs-Subsystem, das Grafikfunktionen unterstützt. Benutzeroberfläche(Grafische Benutzeroberfläche, GUI). (win32k.sys)
Hardware-Abstraktionsschicht (HAL) bietet Unabhängigkeit von der Hardware der Plattform, isoliert die Kernel-Komponenten von den Besonderheiten Hardware. (hal.dll )

Da jedes Betriebssystem einfach mit Hardware arbeiten können muss, enthält das Distributionskit (Installationskit / Systemdateien) Treiber für wichtige Hardwarekomponenten, ohne die das System buchstäblich den Zugriff auf die Hardware mit all den daraus resultierenden Problemen verliert: Es wird nicht funktioniert oder gar nicht funktioniert, durchläuft den Installationsprozess. Diese „internen“ Treiber werden in Form einer sogenannten eingebauten Treiberbibliothek präsentiert, deren Zusammensetzung sich von Version zu Version ändert, abhängig von den Stadien der Hardwareentwicklung und Markttrends. Treiber aus dieser Bibliothek werden bei Bedarf bei der Installation des Betriebssystems installiert, abhängig von der Erkennung (Identifikation) bestimmter Geräte im Computer. Im Allgemeinen erkennt der Hardwareerkennungscode während der Installation die auf dem Computer installierten Geräte und überprüft seine Bibliothek auf vergleichbare Treiber. Für die Geräte, für die Systemtreiber vorhanden sind, wird die Installation im automatischen (Hintergrund-)Modus durchgeführt. So können wir "am Ausgang" nach der Installation des Betriebssystems den Mindestsatz an Systemtreibern erhalten, die für den Betrieb erforderlich sind, wodurch wir eine funktionsfähige anfängliche Arbeitsumgebung organisieren können. Beachten Sie jedoch, dass Sie sich nicht auf die im Distributionskit integrierten Treiber beschränken sollten, da für die volle Funktionsfähigkeit der meisten Geräte möglicherweise vom Gerätehersteller bereitgestellte Treiber erforderlich sind.

Die Frage bleibt: Interagieren alle Kernel-Mode-Komponenten ausschließlich über die HAL-Schicht mit der Hardware? gibt es ausnahmen? Im Internet bieten viele Quellen Diagramme, in denen Grafikadaptertreiber mit Grafikkarten interagieren, als ob sie "direkt" HAL umgehen würden. Soweit ich mich erinnere, wurde Grafiken in einigen Windows-Versionen die höchste Priorität eingeräumt, sodass sie in eine separate Kategorie von Geräten unterteilt wurden, mit denen sie direkt funktionieren Grafikadapter, und dies wurde getan, um zu beschleunigen GUI Systeme.

Interrupt Request Levels (IRQL)

Unter den wichtigsten internen Mechanismen, die die Funktionsweise des Windows-Betriebssystems bestimmen, gibt es ein Thema, das für das Verständnis der Funktionsprinzipien von Treibern sehr wichtig ist und das wahrscheinlich nicht umgangen wird. Dieser Mechanismus heißt Anforderungsebene unterbrechen(Interrupt Request Level, IRQ Level, IRQL) und ist ziemlich schwer zu verstehen, daher geht seine eingehende Untersuchung weit über den Rahmen des präsentierten Materials hinaus, aber in diesem Artikel werden wir versuchen, eine Zusammenfassung zu erstellen (nun, in Zukunft werden wir wird ihm einen eigenen Artikel zuweisen). Ehrlich gesagt bin ich selbst immer noch verwirrt über das Konzept von IRQL, daher werde ich mein eigenes Verständnis systematisch, Schritt für Schritt, auf der Grundlage des in jeder Phase gewonnenen Wissens darlegen.
Der Begriff Interrupt wurde bei mir immer mit der realen Arbeitsweise des Prozessors in Verbindung gebracht, übertragen auf die Tage des MSDOS-Betriebssystems, in denen alles noch ganz einfach war: Es gab einen Satz von 256 Interrupts, die über die Interrupt-Vektortabelle verfügbar waren. Einige dieser Interrupts waren Hardware bzw. wurden unabhängig von einigen externen Hardwareereignissen erzeugt, während andere Software waren bzw. vom Anwendungscode aufgerufen werden konnten. Einträge in der Interrupt-Tabelle konnten neu definiert werden, dh der Interrupt-Handler-Vektor konnte nach Belieben in eine eigene Verarbeitungsprozedur geändert werden. Solche Konzepte wie die Ebene der Interrupt-Anforderungen gab es nicht, alles war einfach und klar. Mit der Entwicklung von Prozessoren und Betriebssystemen erschien jedoch zuerst der geschützte Modus und dann Windows, von diesem Moment an wurde alles schnell komplizierter.
Buchstäblich plötzlich erschien in den allerersten Versionen von Windows 95 / NT eine Art Tabelle (bestehend aus 32 Interrupt-Anforderungsstufen), deren Stufen von der niedrigsten 0 (passiv) bis zur höchsten 31 (hoch) abgestuft sind:

Name Klasse Zweck Intel x86-64-Level
HOCH Hardware Das höchste Niveau. NMI und andere Typen. 31
LEISTUNG Hardware Stromausfallereignisse 30
IGE Hardware Interprozessorsignal. Signale der Kommunikation zwischen Prozessoren. 29
UHR Hardware System-Timer-Zyklus 28
PROFIL Hardware Leistungskontrolle. Kernel-Profiling-Timer (Mechanismus zur Messung der Systemleistung). 27
GERÄT Hardware DIRQL (Geräte-IRQL). Gerät-Hardware-Interrupts. 3-26
VERSENDEN Programm Scheduler-Operationen/aufgeschobene Prozeduraufrufe (DPCs). 2
APC Programm Asynchrone Prozeduraufrufe. 1
PASSIV Programm Passive Ebene. Es gibt keine Unterbrechungen. Normale Codeausführungsebene im Benutzermodus 0

Wie Sie sehen können, gibt es in der obigen Tabelle ein sehr interessantes Merkmal: Sowohl Software- als auch Hardware-Ebenen werden zusammengebracht (0-2 sind Software-Ebenen und 3-31 sind Hardware-Ebenen).

IRQL ist ein proprietäres Programmierattribut, das von Microsoft-Entwicklern eingeführt wurde. Dieser Mechanismus hat keine Hardwareunterstützung durch den Prozessor. Das System verwaltet unabhängig alle Arten von Interrupts, die auftreten, durch den Mechanismus zum Abbilden der Interrupt-Ebenen des Hardware-Interrupt-Controllers (PIC) und seiner eigenen Software-Ebenen in eine einzige hardwareunabhängige Interrupt-Ebenentabelle.

Aus dieser Aussage folgt, dass das Modell seine eigene Software ist und die Ebenen darin nicht an eine Hardwarespezifikation gebunden sind, was es dem System ermöglicht, Hardware- und Nicht-Hardware-Arten von Interrupts in einer einzigen Hierarchie von Prioritäten zusammenzusetzen. Die niedrigeren IRQL-Ebenen (Nicht-Hardware/Software) (PASSIVE, APC, DPC/DISPATCH) werden verwendet, um die Software-Subsysteme des Betriebssystems zu synchronisieren: Auslösen von Scheduling-Operationen wie Thread-Wechsel oder E/A-Abschlussverarbeitung. Schauen wir sie uns im Detail an:

  • 0. (niedrigste) IRQL-Priorität (PASSIV): ist die typische Interrupt-Anforderungsebene, auf der im Betriebssystem gearbeitet wird, sowohl im Benutzermodus als auch im Kernelmodus. Code (Programm) ausgeführt am gegebenes Niveau, kann einfach durch irgendetwas unterbrochen (preemptiv) werden: Beispielsweise werden Threads, die mit dem IRQ PASSIVE-Level ausgeführt werden, vom Scheduler nach Ablauf des ihnen zugewiesenen Zeitquantums preemptiv.
  • APC- und DPC/DISPATCH-IRQLs sind Software-Unterbrechungspegel, die dem Planer zugeordnet sind.
  • Stufe 1 IRQL (APC): Auf dieser Ebene werden die sogenannten APC-Prozeduren ausgeführt, also Prozeduren, die asynchron im Kontext eines bestimmten Threads ausgeführt werden, also asynchrone I/O organisieren, oder auf die Freigabe beliebiger (externer, globale) Systemobjekte. Die Verwendung von APC-Funktionen (z. B. WaitForSingleObjectEx) im Code führt nicht zur sofortigen Ausführung der Funktion, sondern der Thread (in dessen Kontext die Funktion ausgeführt wird) geht in einen Sonderzustand und es wird ein APC-Software-Interrupt generiert, der Der Funktionsaufruf wird in eine interne Warteschlange gestellt. Das nächste Mal, wenn dieser Thread ausgeführt werden soll, wird die geplante APC-Funktion auf der APC-Schicht ausgeführt. Auf der APC-Schicht laufende Threads erhalten daher keine Anforderungen von ihrer eigenen APC-Schicht, die das System für E/A-Abschlussoperationen verwendet.
  • Stufe 2 IRQL (DPC/DISPATCH):
    • Wird verwendet, um Deferred Procedure Calls (DPCs) zu verarbeiten: Deferred Procedure Calls sind Callback-Routinen, die für die Ausführung verzögert werden, bis ein Wechsel zur IRQL DISPATCH-Ebene erfolgt; Typischerweise werden DPCs von hohen IRQLs angefordert, um zusätzliche Arbeit auszuführen, für die die CPU-Zeit nicht kritisch ist. Dies ist eine ziemlich wichtige Phase für die Leistung, und jetzt werde ich erklären, warum. Gerätetreiber versuchen, innerhalb ihrer eigenen Interrupt-Service-Routinen (ISRs) die minimal mögliche Anzahl von Operationen auszuführen, um auf DIRQL-Ebene nicht lange zu dauern, wodurch andere Interrupts nicht blockiert und dadurch nicht das gesamte System verlangsamt werden .

      Je höher der IRQL-Level, desto geringer ist die Leistungsfähigkeit des Prozesses. Dies ermutigt Entwickler dazu hohes Level IRQL, um nur die notwendigsten Operationen auszuführen und alle anderen Aktionen auf niedrigem Niveau auszuführen.

      Wenn der Fahrer versteht, dass zusätzliche Arbeit erforderlich ist, was erhebliche Prozessorzeit beansprucht, dann fordert er das DPC an und überträgt ihm diese Aufgabe. Wenn IRQL auf DISPATCH fällt, wird die zurückgestellte Treiberfunktion zurückgerufen und erledigt den Rest der Verarbeitung. Durch die Implementierung eines ähnlichen Algorithmus auf der IRQL-DISPATCH-Ebene verbringt der Treiber weniger Zeit auf der DIRQL-Ebene und reduziert dementsprechend die Verzögerungszeit für die Verarbeitung seines eigenen Interrupts, wodurch er für andere Systemgeräte freigegeben wird.

    • zum Ausführen von Scheduler-Tasks: Wie Sie wissen, implementieren Windows NT-Betriebssysteme preemptives Multitasking, was bedeutet, dass jedem Prozess, der auf dem Betriebssystem läuft, die Ausführung zugewiesen wird bestimmte Zeit. Da der IRQL des Thread-Schedulers und des DPC 2 ist, ist er höher als die Priorität der Benutzer-Threads (die auf Ebene 0 ausgeführt werden). Die Priorität des Schedulers wiederum ist niedriger als die Priorität von Hardware-Interrupts (Interrupts von Geräten), dh er kann durch Hardware-Interrupts unterbrochen werden.

Okay, aber ich verstehe immer noch nicht, warum es nicht möglich war, all diese Ebenen aufzugeben und ein "flaches" Warteschlangenmodell zu erstellen oder all diese Arten von Aufgaben so zu erledigen, wie sie kommen? Lassen Sie uns eine Arbeitssituation simulieren:
Stellen Sie sich einen Code wie vor kleines Programm geschrieben "auf dem Knie". Also haben wir es zur Ausführung gestartet bzw. es wurde ein Prozess im System für unser Programm gebildet, in dessen Kontext der Hauptthread ausgeführt wurde. Ein typischer Thread (Benutzermodus oder Kernelmodus) wird auf der niedrigsten IRQL PASSIVE-Ebene ausgeführt. Während der Ausführung des Threads generiert die Uhr (Timer-Chip) periodisch ihre eigenen Interrupts, um Zeitintervalle zu zählen, die verwendet werden, um dem Betriebssystem anzuzeigen, dass eine bestimmte Zeitspanne vergangen ist. Die Clock-Interrupt-Behandlungsprozedur wird auf der IRQL-CLOCK-Ebene durchgeführt, die (wenn Sie sich die Tabelle ansehen) eine höhere Priorität hat als die meisten Ebenen: sowohl die DISPATCH-Ebene, die den Scheduler ausführt, als auch die PASSIVE-Ebene, die unser Programm ausführt. Somit ersetzt der Timer ständig die Arbeit sowohl des Schedulers als auch unseres Programms. Mit jedem abgelaufenen Tick des Zeitgebers dekrementiert die Zeitgeberunterbrechungsroutine die verbleibende Zeit des Zeitgebers dieser Moment unser Benutzer-Thread-Zeitquantum. In dem Moment, in dem die Zeitscheibe des ausführenden Threads auf Null abnimmt, erzeugt der Takt-Interrupt-Handler einen Interrupt auf DISPATCH-Ebene, wodurch der Planer veranlasst wird, zu laufen, um den nächsten auszuführenden Thread auszuwählen. Beim Erzeugen eines Interrupts auf DISPATCH-Ebene beendet der Timer-Interrupt-Handler die Ausführung seines Codes, und die Steuerung wird an den Systemkern zurückgegeben. Der Kernel findet den nächsten Interrupt mit der höchsten Prioritätsstufe in der Anforderungswarteschlange, die sich im Wartemodus befindet. Jeder Interrupt wird der Reihe nach bedient. Wenn alle Unterbrechungen oberhalb der DISPATCH-Ebene bedient sind, wird die Unterbrechungsroutine der DISPATCH-Ebene ausgeführt. Dieser Interrupt-Handler verarbeitet die DPC-Liste und ruft dann den Scheduler auf. Der Scheduler erkennt, dass das Zeitquantum des aktuellen Threads erschöpft ist, das heißt auf null reduziert wurde, wonach der Scheduler den Planungsalgorithmus ausführt, um den nächsten auszuführenden Thread auszuwählen. Der Code des auszuführenden Threads wird ausgeführt, wenn das System auf die Ebene IRQL PASSIVE abfällt.
So werden Prioritäten umgesetzt und dementsprechend präemptives Multitasking. Stellen Sie sich nun vor, Sie entfernen die Hierarchie der Unterbrechungsanforderungsebenen aus dem System. Wie wird sich das System in diesem Fall verhalten? In dieser Situation wäre unklar, was wann ausgeführt werden soll, das System würde der Reihe nach alle eingehenden Tasks ausführen, was dazu führen würde, dass Threads den Scheduler leicht präemptieren und dadurch das preemptive Multitasking generell zerstören oder komplett deaktivieren könnten, was dazu führen würde hinter einem unvorhersehbaren Betrieb des Betriebssystems. Auf diese Weise:

IRQL ist eine Hardware-Software-Priorisierungsebene, die für die Synchronisierung in Betriebssystemen der Windows-Familie verwendet wird, dh IRQL-Ebenen sind die Hauptmethode, mit der alle im Windows-Betriebssystem während des Arbeitszyklus durchgeführten Aktionen priorisiert werden.

bzw:

IRQL gibt die Priorität des auf dem Prozessor ausgeführten Codes in Bezug auf Interrupts und andere asynchrone (plötzliche) Ereignisse an.

Der Zweck der IRQL-Ebenen im System ist wie folgt:

  1. Maskierung: Durch Erhöhen des Interrupt-Levels können Sie die zugrunde liegenden Hardware-Interrupt-Level auf dem PIC-Controller abschneiden (maskieren). Dadurch können Sie vorübergehend Interrupts ignorieren, die auf niedrigeren Ebenen auftreten, wodurch Sie Zeit gewinnen, um die Hardware-Interrupt-Routine auf dieser Ebene auszuführen.
  2. Hardware-Synchronisation: Synchronisation von Daten zwischen Threads, die auf verschiedenen Prozessoren/Kernen in einem Multiprozessorsystem laufen.
  3. Software-Timing: um zu bestimmen, wann verschiedene APC/DPC-Routinen bedient werden können, um zu bestimmen, wann Anwendungen im Benutzermodus bedient werden können.

Somit ermöglicht der IRQL-Mechanismus auf globaler Ebene einer Betriebssystem-Subroutine Folgendes:

  • Wiedereintritt verwalten (Wiedereintritt)
  • Stellen Sie sicher, dass es weiterhin ausgeführt werden kann, ohne von einer anderen Aktivität unterbrochen (preempted) zu werden.

Die Prozesssynchronisierung ist ein Mechanismus, mit dem Sie die Integrität einer Ressource (Datei, Daten im Speicher) sicherstellen können, wenn sie von mehreren Prozessen oder Threads in zufälliger Reihenfolge verwendet wird.

Okay, aber wie wirkt sich das auf die Fahrer aus? Wir wissen, dass Treiber im Benutzermodus bzw. im Kernelmodus sein können, sie laufen im Benutzermodus und im Kernelmodus. Daraus folgt:

Treibercode kann auf verschiedenen IRQL-Ebenen ausgeführt werden.

Und dies führt zu zwei ziemlich wichtigen Schlussfolgerungen:

  1. Der Treibercode ist präemptiv und unterbrechbar. Wie jeder andere Code im System kann er jederzeit nach Ablauf der zugewiesenen Zeitscheibe unterbrochen werden;
  2. Der Treibercode muss bestimmte Sätze verwenden Systemfunktionen abhängig von der IRQL-Ebene, auf der es ausgeführt wird.

Stellen Sie sich eine Situation vor, in der Treibercode mit einem niedrigen IRQL ausgeführt wird, ein Objekt ändert (z. B. eine Datei file.txt ), dann ein anderer Code mit einem höheren IRQL plötzlich seine Ausführung unterbricht und dieselbe Datei file.txt mit anderen Daten ändert. Wenn die Kontrolle an unseren Treiber zurückgegeben wird, wird er die Datei weiterhin mit seinen eigenen Daten modifizieren und dabei die Daten überschreiben, die aus einer anderen Quelle stammen. Daher wird die Datei in einen inkonsistenten Zustand übergehen. Zur Lösung dieser Probleme wurden verschiedene Synchronisationssystemobjekte eingeführt. Damit Code auf Kernel-Ebene bestimmte Datentypen, Mutex-Objekte, ändern kann, muss er zuerst den Besitz der Sperren erwerben.

Fahrerkonzept

Der Kern des Windows-Betriebssystems wurde nicht dafür entwickelt, eigenständig mit Geräten zu interagieren.

Dementsprechend liegen die aus dieser Aussage folgenden Schlussfolgerungen auf der Hand: Für die Interaktion des Systems mit Geräten sind separate Schnittstellen erforderlich, möglicherweise sogar eine komplexe Kombination mehrerer Schnittstellen. Das Treiberkonzept wurde entwickelt, um das Problem der Paarung zu lösen und wird in den meisten Modellen verwendet moderne Systeme, Es basiert auf der Arbeit im Adressraum des Kernels eines speziellen Codes, der die Interaktion des Systemkerns mit jeder Art von logischen / physischen Geräten gewährleistet.
Angesichts der allgemeinen Ausrichtung der Ressource behandeln wir in diesem Artikel nur die Besonderheiten der Windows-Betriebssystemtreiber. So für Windows-Treiber, wie im Allgemeinen Treiber anderer Betriebssysteme, gelten die folgenden Aussagen:

Treiber (Treiber) - Software, mit der das Betriebssystem (Benutzerprogramme, Kernel und andere Komponenten) Zugriff auf die Funktionalität eines physischen oder logischen Geräts erhält.

das gleiche, aber mit anderen Worten:

Treiber – Schnittstelle zwischen Benutzermoduscode, Kernelmoduscode und physikalischen/logischen/virtuellen Gerätefunktionen.

Eine der obigen Definitionen hebt ein wichtiges Merkmal eines Treibers hervor: Es ist ein Fehler, an einen Treiber nur im Zusammenspiel mit einem physischen Gerät zu denken, da ein Treiber keinen Zugriff auf die Funktionen irgendeiner Hardware bereitstellen muss, sondern auch bereitstellen kann nur Softwarefunktionalitäten. Beispiele für solche Lösungen sind Treiber, die von Antivirenprogrammen, Datenverschlüsselungssystemen und Überwachungssystemen im System installiert werden. Allgemeiner Algorithmus Die Funktionsweise eines beliebigen Treibers ist wie folgt: Anwendungen greifen über die Funktionen einer speziellen Benutzeroberfläche (in Windows ist dies die Win32-API) oder E / A-Anforderungen indirekt / direkt auf die Funktionen eines Gerätetreibers zu. Der Treiber wiederum bietet Zugriff auf die funktionellen Merkmale des interessierenden Geräts und steuert auch den Prozess der Interaktion zwischen Anwendungsanforderungen und dem Gerät selbst. Natürlich muss der Fahrer alle Prinzipien der Interaktion mit dem gewarteten (Slave, eigenen) Gerät definieren (beschreiben), es muss eine Reihe von Daten über das verwaltete Objekt, Anweisungen (eine Reihe von Befehlen) geben, mit deren Hilfe die System- / Benutzercode kann das Gerät korrekt initialisieren und die Interaktion mit ihm starten.

Laden von Treibern beim Start des Betriebssystems

Es wäre sehr interessant zu sehen, in welcher Phase des Betriebssystemstarts der erste Windows-Treiber geladen und ausgeführt wird. In einer detaillierten Darstellung ist dieser Vorgang jedoch eher nicht trivial und erfordert für ein tiefes Verständnis die Umkehrung des Codes vieler Boot-Komponenten. Außerdem müssen viele verwandte Punkte berücksichtigt werden, z. B.: der Boot Reihenfolge aufgrund der Abhängigkeit zwischen Treibern, aufgrund derer Treiber in sogenannte "Ladegruppen" gruppiert werden können, das Laden von Treibern selbst in mehrere Phasen unterteilt werden kann usw. Gleichzeitig ist zu beachten, dass es im Internet eine große Menge an Materialien zu bereits veralteten Betriebssystemen gibt, daher werden wir versuchen, den Download-Prozess zu aktualisieren. Windows-Treiber Am Beispiel des (mir am nächsten stehenden) Betriebssystems Windows 7. Und für den Anfang würde es nicht schaden, über die Hauptkomponenten zu sprechen Windows-Kernel aktiv am Treiberladeprozess beteiligt:

  • Manager (Manager) Eingang / Ausgang (I / O-Manager)- ein Kernel-Mode-Modul, das Teil des ausführenden Subsystems ist, das die Eingabe-/Ausgabeprozesse steuert, eine Abstraktion von physikalischen und logischen Geräten für Benutzeranwendungen bereitstellt und Systemkomponenten A, das Anwendungen im Benutzermodus mit Treibern verknüpft. Steuert die Phasen des Fahrerinteraktionsprozesses. Der gesamte Datenaustausch des E/A-Managers mit Treibern wird durchgeführt, indem die Callback-Prozeduren des Treibers aufgerufen werden und ihnen eine standardisierte IRP-Datenstruktur übergeben wird, die das ganze Wesen des Aufrufs an den Treiber beschreibt;
  • Plug-and-Play-Manager (PnP-Manager)- Kernelmodus- und Benutzermodusmodul, das Teil des ausführenden Subsystems ist und für das Hinzufügen, Erkennen und Entfernen von Geräten im Betriebssystem verantwortlich ist. Ein Teil des Kernelmodus interagiert während des Installations- (Boot-)Prozesses mit den restlichen Systemkomponenten und Treibern Software benötigt, um die Geräte im System zu warten. Der Benutzermodusteil ist für die Interaktion mit Benutzermodusprogrammen (für interaktive Benutzererfahrung) in Situationen verantwortlich, die die Installation neuer Treiber oder die Anpassung von Betriebsparametern in bestehenden Treibern erfordern. Verwaltet die Verteilung von Hardwareressourcen im System, weiß auch, wie man Geräte erkennt, auf ihre Verbindung / Trennung reagiert und die entsprechenden Treiber lädt, wenn neue Geräte erkannt werden;
  • Dienststeuerungsmanager (SCM)- ein Systemprozess, der für das Erstellen, Löschen, Starten und Stoppen von Diensten und Betriebssystemtreibern verantwortlich ist. Es bietet auch: Betrieb des Ereignisprotokolls, Unterstützung für Remote Procedure Call (RPC)-Technologie;

Diese zwei Manager, das heißt der E/A-Manager und der PnP-Manager, interagieren aktiv miteinander.
Nun beschreiben wir den Vorgang des Ladens des Betriebssystems, allerdings nicht in der gewohnten Form, sondern kurz die Eckpunkte zum Betrieb der beschriebenen Komponenten des Betriebssystems mit Treibern:

  1. Bootmgr(.efi) lädt das Modul winload(.efi) und übergibt ihm die Kontrolle.
  2. Winload (.efi) scannt die Registrierungsstruktur HKEY_LOCAL_MACHINE\System\services und erhält eine Liste aller auf dem System installierten Treiber. Diese Registrierungsstruktur enthält Schlüssel, die Zieltreibern zugeordnet sind, und sie enthalten verschiedene treiberbezogene Einstellungen wie Group , Start , Type , LoadOrderGroup , DependOnGroup , DependOnServices , die bestimmte Treiberladekriterien bestimmen.
  3. Winload (.efi) lädt Treiber, die für die Anfangsphase des Ladens/Betriebs des Betriebssystems kritisch sind, wie z. B. Laufwerkscontrollertreiber, Dateisystemtreiber. Offensichtlich haben solche Treiber die höchste Priorität, da sie die Grundlage für das Laden anderer Treiber bilden und daher aus diesen und anderen Gründen zum Zeitpunkt der Übergabe der Steuerung an den Kernel im Speicher sein müssen. Dementsprechend sind sie mit einem speziellen Typ SERVICE_BOOT_START gekennzeichnet. Treiber für diese Phase Beginnen Sie mit dem Herunterladen, je nachdem, zu welchen Gruppen sie gehören.
  4. Winload(.efi) lädt den Kernel direkt von ntoskrnl.exe und übergibt ihm die Kontrolle.
  5. Der Kernel lädt den I/O-Manager und den PnP-Manager.
  6. Der E/A-Manager erstellt einen globalen Katalog. Dieses Verzeichnis wird später verwendet, um Geräteobjekte zu registrieren.
  7. Der PnP-Manager startet die Treiber, die bereits im vorherigen Schritt in den Speicher geladen wurden (vom Typ SERVICE_BOOT_START), indem er die DriverEntry-Prozedur jedes Treibers aufruft. In diesem Stadium werden auch abhängige Treiber geladen.
  8. Der PnP-Manager erstellt den Gerätebaum des Systems, durchläuft ihn von der Wurzel aus und lädt Gerätetreiber, die noch nicht geladen wurden.
  9. Der PnP-Manager lädt die verbleibenden entladenen Gerätetreiber unabhängig vom Wert des Parameters Start. Viele dieser Treiber sind vom Typ SERVICE_DEMAND_START .
  10. Der PnP-Manager lädt erweiterte Funktionstreiber. Zu diesen Treibern gehören der Videoadaptertreiber, Treiber für externe Geräte und TCP/IP-Stack-Treiber. Solche Treiber sind vom Typ SERVICE_SYSTEM_START .
  11. Der Kernel lädt den Session Manager Subsystem Service (SMSS), der wiederum den Service Control Manager (SCM) lädt. SCM scannt die Registrierungsstruktur ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services) und baut auf der Grundlage der erhaltenen Informationen eine interne Datenbank mit Diensten/Treibern auf und bildet eine Programmierschnittstelle zur Wartung installierter Dienste/Treiber. Der SCM lädt "Autostart"-Nicht-PnP-Treiber (des Typs SERVICE_AUTO_START) und alle Treiber, von denen sie abhängen.

Aus diesem gesamten Algorithmus zum Laden von Treibern müssen wir die folgenden Grundregeln verstehen: Ein Treiber kann (je nach Stufe / Klasse des Treibers) mit einem PnP-Manager oder mit SCM geladen werden, aber der I / O-Manager nimmt aktiv teil im Prozess des Treiberbetriebs.

Windows-Treiberstruktur

Wie könnte ein Fahrer strukturell aussehen? Handelt es sich wirklich um eine spezielle Klasse von Programmen, die auf eine ganz bestimmte Weise angeordnet sind? Auch ich habe das einmal naiv gedacht, aber wenn Sie darüber nachdenken, warum sollten sich die Entwickler des Betriebssystems das Leben verkomplizieren und ein neues spezialisiertes Format des ausführbaren Dateiimages für einige nukleare Komponenten erfinden? Es ist viel einfacher, das alte, längst ausgetestete und hundertfach bewährte, anzupassen.

Ein Treiber ist eine Art "Kernel-Modus-Bibliothek", das Übliche DLL-Datei, dessen PE-Header (struct IMAGE_NT_HEADERS , Unterstruktur OptionalHeader) den Wert des Feldes Subsystem = 1 (IMAGE_SUBSYSTEM_NATIVE) hat.

Der Subsystemtyp kann beim Build festgelegt werden ausführbares Modul. Das native Subsystem selbst ist typisch für Anwendungen, die nach anderen als den klassischen Regeln arbeiten: In der Phase der Vorbereitung des Images für die Ausführung müssen sie das Win32-Subsystem nicht initialisieren. Das native Subsystem wird unter anderem für Kernel-Mode-Code verwendet, was fast alle Treiber sind.

In Analogie zu einer DLL können wir uns einen Treiber vereinfacht als eine Reihe von Prozeduren vorstellen (die von externen Anwendungen aufgerufen werden), von denen jede dafür ausgelegt ist, einen bestimmten Typ von Aufrufen des Treibers zu verarbeiten.

Lassen Sie uns einen kleinen Exkurs machen und über ein solches Konzept als Objekt sprechen. Tatsache ist, dass der gesamte Funktionsprozess des Windows-Treibers wie aller anderen Module des Betriebssystems von einer Vielzahl von Systemdatenstrukturen abhängt. Diese Strukturen werden vom Kernel verwaltet und können Threads, Ereignisse, E/A-Anforderungen, Geräte und andere Entitäten enthalten.

  • Objekte. Datenblöcke, die Aufzeichnungen der Eigenschaften einer bestimmten Entität des Betriebssystems enthalten. Verwaltet vom Dispatcher (Manager) von Objekten. Viele Objekte haben Deskriptoren (Deskriptoren), die das Objekt für Anwendungen verfügbar machen.
  • Datenstrukturen. Datenblöcke, die Aufzeichnungen der Eigenschaften einer bestimmten Entität des Betriebssystems enthalten. vom Kernel verwaltet. Von Objekten zu unterscheiden, werden aber (aufgrund der Trägheit) auch als Objekte bezeichnet

Aus diesem Grund werden (mit viel Druck) alle internen Strukturen des Windows-Betriebssystems als Objekte bezeichnet.
Nun zurück zu den Treiberprozeduren, tatsächlich sind die sogenannten "Prozeduren" des Treibers Callback-COM-Objekte, die Ereignisse verarbeiten, die von den entsprechenden Infrastrukturobjekten des Betriebssystems kommen, es wird gesagt, dass der Treiber den Betriebssystemkern mit einem COM versorgt Schnittstelle, die durch eine Reihe von Prozeduren angegeben wird, die vom Treiber implementiert werden. Der Export, dh die Veröffentlichung (Erklärung) von Fahrerprozeduren für den weiteren Zugriff darauf von außen, erfolgt durch Registrierung in der Hauptfahrerprozedur (Standard für alle Fahrer), genannt DriverEntry .

Der Hauptzweck der DriverEntry-Funktion besteht darin, dass der Treiberentwickler darin das Füllen des Objekts (Strukturaufzeichnungen) des Treibers mit Zeigern auf verschiedene treiberinterne Prozeduren implementiert, die die eine oder andere Funktionalität bereitstellen. In der DriverEntry-Prozedur können Sie den Namen eines Geräteobjekts festlegen (ändern), das dann von Anwendungen verwendet wird, um ein Gerätehandle zu öffnen und E/A-Anforderungspakete (IRPs) zu senden.

Die DriverEntry-Funktion ist eigentlich eine globale Initialisierungsfunktion und wird einmal während des Treiberladens ausgeführt. Diese Funktion kann so einfach wie möglich sein oder erweiterte Funktionalität (zusätzliche Subroutinen) enthalten, wie beispielsweise das Erstellen zusätzlicher Geräteobjekte, das Abfragen des Geräts, zusätzliche Konfigurationsphasen und die Initialisierung des Geräts/der Geräte.
Nach der Veröffentlichung seiner eigenen Funktionen wird der Treiber zum „sichtbaren“ Kern des Betriebssystems. Um eine ohnehin schon ziemlich komplizierte Theorie nicht zu verkomplizieren, gehen wir davon aus, dass aus Sicht des Windows-Kernels jedes Gerät eine Art abstraktes "virtuelles Gerät" ist, das mit einem standardisierten Satz von Befehlen arbeitet und über interne Schnittstellen zugänglich ist . Wie oben erwähnt, gibt es im Kernel des Windows-Betriebssystems ein spezielles Modul des ausführenden Systems namens E/A-Manager, die eine einzige Interoperabilitätsschnittstelle für alle Kernelmodustreiber bereitstellt, einschließlich physischer Gerätetreiber, logischer Gerätetreiber und Dateisystemtreiber. Dementsprechend verwaltet das Kernel-E/A-System die Treiber, oder wir können sagen, dass die Treiber die E/A-Manager-Schnittstelle verwenden, um im Betriebssystem zu funktionieren. Andererseits sorgt der Treiber für die Konvertierung (Konvertierung) von "Standardbefehlen", die vom Betriebssystem kommen, in Befehle, die von dem von ihm gesteuerten Gerät (falls vorhanden) "verstanden" werden, und umgekehrt. Der E/A-Manager definiert einen Satz (Satz) von Routinen, die in einem Treiber implementiert werden können, weil:

Der Treiber enthält eine Reihe von Callback-Routinen, die verschiedene Phasen des E/A-Prozesses bereitstellen.

Um besser zu verstehen, welche Funktionalität ein Treiber bieten sollte, geben wir einen allgemeinen Überblick über die wichtigsten Treiberverfahren:

Tatsächlich wird beim Betrachten des obigen Diagramms klar, welche Arten von Interaktionen, nämlich Gruppen von Prozeduren, der abstrakte Windows-Treiber implementieren sollte. Lassen Sie uns nun einige dieser Verfahren auflisten:

  • Initialisierung – Der E/A-Manager startet eine Initialisierungsprozedur (genannt DriverEntry), die Aktionen ausführen soll Ersteinrichtung das Treiberobjekt, Registrieren aller anderen Treiberroutinen, Konfigurieren des Slaves und Ausführen anderer Aktionen im Namen des Entwicklers.
  • Gerät hinzufügen - Fügen Sie ein (optionales) Geräteobjekt hinzu. Bei diesem Verfahren erstellt der Treiber normalerweise Geräteobjekte für jedes Gerät, das der Treiber bedient. Wird normalerweise für Plug-and-Play-Treiber verwendet.
  • Verarbeitung - eine Reihe von Versandverfahren (Verarbeitung verschiedener Zustände). Das Öffnen, Schließen, Lesen, Schreiben auf ein Gerät, Verarbeitungsleistungszustände, PnP-Ereignisse und Systemzustände sowie einige andere Interaktionstypen werden in den Versandverfahren beschrieben. Tatsächlich sind dies die Hauptprozeduren, da typische I/O-Operationen durch Dispatch-Prozeduren verarbeitet werden.
  • Das Starten (Beginn) von I/O ist die zweite Stufe der Verarbeitung einer I/O-Anforderung an ein Gerät, wobei die I/O des Geräts direkt gestartet wird. Dieses Verfahren kann verwendet werden, um die Übertragung von Daten zum/vom Gerät zu starten.
  • Unterbrechungsdienstprozedur - Wenn das Gerät eine Unterbrechung erzeugt, überträgt der Unterbrechungsmanager die Steuerung an diese Prozedur.
  • Behandlung verzögerter Prozeduraufrufe - Die DPC-Routine übernimmt den Großteil der Unterbrechungsbehandlung, nachdem die ISR ausgeführt wurde. Zurückgestellte Prozeduraufrufe werden auf niedrigeren IRQL-Ebenen (DPC/DISPATCH) ausgeführt als die ISR-Prozedur selbst. Ein ähnlicher Algorithmus wird implementiert, um zu vermeiden, dass andere Interrupts blockiert werden.
  • E/A-Abschlussroutine – Ein Mehrebenentreiber kann E/A-Abschlussroutinen aufweisen, die den Abschluss der IRP-Verarbeitung durch den Low-Level-Treiber mitteilen.
  • E/A-Abbruchprozeduren – Wenn E/A-Operationen unterbrochen werden können, kann der Treiber eine oder mehrere solcher Prozeduren definieren. Wenn ein Treiber ein IRP für eine stornierbare E/A-Anforderung empfängt, weist er eine IRP-Abbruchprozedur zu, und die IRP durchläuft verschiedene Verarbeitungsschritte, die die Prozedur ändern oder entfernen kann, wenn die aktuelle Operation nicht stornierbar ist.
  • Fast-Send-Routine – Treiber, die den Cache-Manager intensiv nutzen, wie z. B. Dateisystemtreiber, stellen normalerweise ähnliche Routinen bereit, damit der Kernel allgemeine E/A-Verarbeitungsalgorithmen umgehen kann.
  • Die Entladeprozedur muss in jedem Treiber implementiert werden, der mit Systemressourcen arbeitet (freigibt/borgt), damit der E/A-Manager den Treiber aus dem Speicher entlädt.
  • Shutdown Alert Procedure - Ermöglicht dem Treiber, alle belegten Ressourcen freizugeben, wenn das System heruntergefahren wird.

Es wird deutlich, dass es im Prozess der Entwicklung eines Windows-Treibers nicht erforderlich ist, den gesamten oben beschriebenen Satz von Verfahren zu implementieren, jeder Treiber einzigartig ist und der Entwickler frei ist, seinen eigenen Satz von Implementierungen bereitzustellen, die von dem Treiber unterstützt werden. Wenn ein Treiber unter Verwendung eines PnP-Managers oder SCM in das System geladen wird, erstellt der E/A-Manager ein Treiberobjekt im Namespace und ruft die Initialisierungsroutine des Treibers (normalerweise ein DriverEntry) auf, die weitere Initialisierungsschritte durchführt.

Das Treiberobjekt stellt das Bild des geladenen Treibers im Kernelspeicher dar, und das System steuert den Treiber durch dieses Objekt.

Das Treiberobjekt stellt den Code und die Daten des Treibers im Kernel dar: Unter anderem exportiert der Treiber die Einstiegspunkte seiner Prozeduren durch dieses Objekt. Die Treiberinitialisierungsprozedur schreibt die Einstiegspunkte aller exportierten Treiberprozeduren in die Attribute dieses Objekts. Nach dem Laden kann der Treiber Geräteobjekte erstellen, um Geräte darzustellen oder sogar die Schnittstelle des Treibers zu bilden. Die meisten Treiber erstellen Geräteobjekte wie folgt:

  • PnP-Treiber erstellen Geräteobjekte durch ihre Routinen zum Hinzufügen von Geräten, wenn der PnP-Manager sie über das Vorhandensein eines von ihnen verwalteten Geräts informiert.
  • Nicht-PnP-Treiber erstellen Geräteobjekte, wenn ihr E/A-Manager ihre Initialisierungsroutinen aufruft.

Beim Erstellen eines Objekts vom Typ "Gerät" (Gerät) muss der Treiber zugewiesen werden dieses Objekt Name. Dieses neu erstellte Objekt wird dann in den Namensraum gestellt Objektmanager(Object Manager), der wie der I/O-Manager (Manager) Teil des Kernel-Executive-Subsystems ist. Der Objektmanager ist dafür ausgelegt, eine Datenbank aller Betriebssystemressourcen zu unterhalten, die als Objekte dargestellt sind. Der Objektname kann vom Treiber selbst explizit definiert oder vom I/O-Manager automatisch generiert werden. Per Konvention müssen sich Geräteobjekte im Verzeichnis \Device des Namespace des Objektmanagers befinden, auf den Anwendungen über die Win32-API nicht zugreifen können. Und damit das Objekt "Gerät" für Anwendungen verfügbar wird, muss der Treiber im Verzeichnis \GLOBAL?? symbolischer Link auf den Namen dieses Objekts im Verzeichnis \Device. Nicht-Plug-and-Play- und Dateisystemtreiber erstellen normalerweise einen symbolischen Link mit einem bekannten Namen (z. B. \Device\VMwareKbdFilter). Erst nach allen aufgelisteten Aktionen wird der Treiber im System "sichtbar" und für den Aufruf durch Benutzeranwendungen verfügbar.

Fahrerinteraktion

Wie kann ein Anwenderprogramm mit einem Treiber im System interagieren? Dazu gibt es zwei Möglichkeiten:

  1. Implizit – Aufruf einer generischen Win32-API-Funktion;
  2. Explizit – eine direkte E/A-Anforderung an den Treiber;

Nun, mit dem ersten Fall ist alles ganz einfach, in Anwendungsprogramm wird eine gewöhnliche Win32-API-Funktion aufgerufen (z. B. CreateFile), die dann je nach Zielobjekt (Datei, Verzeichnis) die Austauschfunktion mit dem Treiber in der Kette ihrer Aufrufe aufrufen kann. Tatsächlich stellt sich der Anwendungscode in diesem Fall nicht die Aufgabe, mit irgendeinem Treiber zu interagieren, sondern entlang der Kette von Prozeduraufrufen geht die Ausführung an einem bestimmten Punkt in den Kernel-Modus und die Treiberfunktion wird dort aufgerufen. All dies bleibt dem Entwickler verborgen, aber es ist möglich, die Interaktion mithilfe von Debugging-Tools nachzuvollziehen.
Interessanter ist der zweite Fall, er tritt auf, wenn ein Treiberaufruf keinen indirekten Aufruf (durch Aufruf einer generischen Funktion) bedeutet, sondern eine Übergabe mittels einer speziellen Funktion (zB DeviceIoControl) des sogenannten I/O-Control-Requests , der ferner die Bildung eines Datenblocks initiiert, der I/O-Anforderungspaket genannt wird.

I/O Request Packet (IRP) ist eine Windows-Kernel-Datenstruktur, die Informationen enthält, die eine I/O-Anforderung beschreiben.

Formal ist IRP ein Paket, aber tatsächlich ist es ein Kernel-Objekt, dh eine Datenstruktur (Block) mit einer Reihe von Prozeduren für den E / A-Manager, der den Datenaustausch zwischen dem Programm und dem Treiber oder zwischen ihnen ermöglicht der Fahrer und der Fahrer. Wie wir bereits erwähnt haben, ist die Windows-Architektur so aufgebaut, dass sie keine direkte Interaktion zwischen dem Benutzermodus-Programm und dem Treiber zulässt, sodass sich ein solcher Austausch auf das Senden des IOCTL-Codes durch das Programm reduziert, was bereits dazu führt der E/A-Manager erzeugt ein IRP-Anforderungspaket. Es ist der E/A-Manager, der für die Interaktion mit den Treibern verantwortlich ist, der die IRPs betreibt. Der E/A-Manager empfängt eine E/A-Anforderung vom Benutzerprogramm, generiert dann ein IRP und leitet es an den entsprechenden Treiber weiter.
Das IRP-Paket besteht aus zwei Teilen:

  • fester Bestandteil;
  • E/A-Platzierungsstapel.

Im konstanten Teil enthält das IRP einen Major- und (nicht immer) einen Minor-Funktionscode. Старшие коды: IRP_MJ_CREATE , IRP_MJ_CLOSE , IRP_MJ_READ , IRP_MJ_WRITE , IRP_MJ_CLEANUP , IRP_MJ_DEVICE_CONTROL , IRP_MJ_INTERNAL_DEVICE_CONTROL , IRP_MJ_SCSI , IRP_MJ_SYSTEM_CONTROL , IRP_MJ_POWER , IRP_MJ_PNP , IRP_MJ_SHUTDOWN . Das Paket enthält auch einen E/A-Platzierungsstapel – eine spezielle IO_STACK_LOCATION-Struktur, die bestimmte Parameter enthält: Dies ist die Gruppe von Geräten, die dieses IRP-Paket verarbeiten. Darüber hinaus wird dieses Paket sequentiell von Gerät zu Gerät entlang des Stacks übertragen. Mehr als eine Stapelplatzierung zeigt an, dass ein IRP von mehreren Treibern verarbeitet werden kann. Die "Stapelzellen" des IRP sind so ausgelegt, dass sie "variable" Informationen speichern, wenn das IRP-Paket den Treiberstapel durchläuft. Das IRP durchläuft die veröffentlichten Prozeduren jedes Treibers, von denen jede die Informationen, die sie benötigt, von "seinem" E/A-Platzierungsstapelort abruft. Treiberprozeduren werden traditionell "Callback-Prozeduren" genannt. Wie wir bereits erwähnt haben, teilt (veröffentlicht) die Initialisierungsfunktion von DriverEtnry dem Kernel die Namen dieser Prozeduren mit und später ruft der Kernel selbst unter Umständen diese oder jene Prozedur auf.
Im Gegensatz zu einem Standardprogramm ist ein Treiber kein klassischer Prozess mit eigenem Adressraum und hat keinen Ausführungsthread. Stattdessen wird die Treiberfunktion im Kontext des Threads und Prozesses ausgeführt, in dem sie aufgerufen wurde. Der Kontext (Codeausführungsbereich) eines Treibers hängt davon ab, wer den Treiber aufruft (aufruft). Ein Einspruch kann eingelegt werden:

  1. Anwendungsprogramm (Benutzermodusprogramm). In diesem Fall ist der Ausführungskontext des Treibers genau bekannt und stimmt mit dem Kontext des Anwendungsprogramms überein;
  2. Ein anderer Treiber (Drittanbieter). In diesem Fall ist der Ausführungskontext schwieriger zu bestimmen, er kann entweder bekannt oder zufällig sein, er hängt vom Ausführungskontext der aufrufenden Treiberfunktion ab.
  3. Hardware-/Software-Interrupt. In diesem Fall ist der Ausführungskontext zufällig, da ein Interrupt (und dementsprechend ein Umschalten auf Treibercode) auftreten kann, wenn absolut jeder Code im Betriebssystem ausgeführt wird.

Anders als das Standardprogramm kann der Treiber wiederum keine Standard-Win32-API-Funktionen aufrufen, er kann nur mit im Kernel verfügbaren Funktionen arbeiten, die mit den Präfixen Ex.. , Hal.. , Io.. , Ke.. , Ks.. beginnen. , Mm.. , Ob.. , Po.. , Ps.. , Rtl.. , Se.. , Zw.. und einige andere.

Typen (Typen) von Windows-Treibern

Im Laufe der Evolution und dementsprechend der Verkomplizierung des Fahrerkonzepts begann man, Fahrer je nach Verwendungszweck in Kategorien (oder Typen) einzuteilen. Hier sind die wichtigsten:

  • Klasse Treiber(Klassentreiber) – Treiber, die von Microsoft für eine bestimmte Geräteklasse entwickelt wurden.
  • Dateisystemtreiber(Dateisystemtreiber) - Treiber, die implementieren Dateisysteme auf verschiedenen Medien.
  • Legacy-Treiber(Legacy-Treiber) - "veraltete" (strukturkompatibel mit älteren Betriebssystemversionen) Kernelmodustreiber, die das Slave-Gerät ohne zusätzliche Gerätetreiber unabhängig direkt steuern. Warum haben sie einen solchen Namen? Weil dies ein Treibertyp ist, der von den ersten Versionen der Windows NT-Reihe von Betriebssystemen erhalten geblieben ist.
  • Bustreiber – Treiber, die die Funktionalität eines beliebigen Computerbusses bereitstellen (ISA, PCI, USB, IEEE1394 und andere);
  • Filtertreiber(Filtertreiber) - Treiber, die zum Überwachen/Ändern der Logik eines anderen Treibers verwendet werden, indem sie mit den durchlaufenden Daten arbeiten.
    • Top-Filtertreiber(Obere Filtertreiber) – ein Untertyp von Filtertreibern, die sich oberhalb des funktionalen Treibers im Stapel befinden. Alle Anforderungen passieren die oberen Filtertreiber, was bedeutet, dass sie Informationen ändern und/oder filtern können, die an den funktionalen Treiber und dann möglicherweise an das Gerät gehen. Beispiele wären ein Filtertreiber, der den Datenverkehr überwacht/filtert und Lese-/Schreibanforderungen verschlüsselt/abfängt. Solche Treiber werden in Firewalls verwendet.
    • Untere Filtertreiber(Lower-Filter-Treiber) – ein Subtyp von Filtertreibern, der sich unterhalb des funktionalen Treibers im Stack befindet. In der Regel passieren solche niedrigeren Filtertreiber weniger Anfragen als andere Filtertreiber, da die meisten Anfragen vom funktionalen Treiber selbst ausgeführt und abgeschlossen werden.
  • Funktionierende Treiber(Funktionstreiber) - Treiber, die unabhängig funktionieren und alle Aspekte in Bezug auf das Gerät bestimmen.
  • PnP-Treiber (PnP-Treiber) – ein Treiber, der die Plug-and-Play-Technologie unterstützt;
  • Minifahrer (Miniport, Miniklasse)(Miniport-Treiber, Minidriver, Miniclass-Treiber) – Treiber, die Aufgaben im Zusammenhang mit dem Zielgerät handhaben und Klassentreiber verwenden, um das Gerät zu steuern. Fungiert als Teil eines Treiberpaars, in dem diese Kategorie als Endgerätetreiber fungiert, die bestimmte Geräteaufgaben ausführen.

Treiber sind je nach Komponentisierungsgrad:

  • Single-Level - Die I/O-Verarbeitung wird innerhalb eines einzelnen ausführbaren Moduls (Treiber) implementiert.
  • Multilevel - Die I/O-Verarbeitung wird auf mehrere Treiber verteilt.

PnP-Treiber unter Windows sind unterteilt in:

  • Funktionstreiber
  • Busfahrer (Busfahrer)
  • Treiber-Filter (Filter-Treiber)

Nach Ausführungsmodus werden Windows-Treiber eingestuft:

  • Benutzermodus-Treiber.
  • Kernel-Modus-Treiber.

Fahrermodelle

Während der gesamten Existenz des Betriebssystems haben Entwickler versucht, die Entwicklung von Treibern zu standardisieren und zu vereinfachen. Als Ergebnis erschienen Modelle.

WDM-Modell

Früher gab es zwei Hauptrichtungen für die Entwicklung des Windows-Treiberkonzepts:

  1. Windows 95/98 verwendete das VxD-Modell (Virtual Device Driver);
  2. in Windows NT3.51 wurde das NT-Treibermodell (NT-Style-Treiber, NT-Treiber) parallel entwickelt.

Ab der Version Windows 98/NT4.0 versuchten die Entwickler jedoch, die Treiberentwicklung zu vereinheitlichen (universalisieren), wodurch die genannten Modelle durch ein neues WDM-Modell ersetzt wurden.

WDM (Windows-Treibermodell, Windows-Treiber Model) ist eine einheitliche Entwicklungsumgebung (Framework) für Gerätetreiber des Windows-Betriebssystems. Es wurde erstellt, um die Anforderungen an die Code-Standardisierung für Treiber zu reduzieren.

Das WDM-Modell war ein Schritt zur Neudefinition des klassischen Windows-Treiberstapels, um Unterstützung für die damals revolutionären Plug-and-Play- und ACPI-Technologien bereitzustellen. Das Modell ermöglicht es, Treiber im laufenden Betrieb zu laden/entladen, ohne dass das Betriebssystem neu gestartet werden muss, und Treiber als Erweiterungen (Filter) zum Standard zu entwickeln Systemtreiber, Energieeinsparung und Gerätekonfiguration flexibler verwalten und so weiter.
Im Rahmen des WDM-Modells können beliebige Hardwaregerät unterstützt von mindestens zwei Treibern:

  • Funktionstreiber (Funktionstreiber) - verantwortlich für fast alle Funktionsmerkmale des bedienten Geräts: E / A-Operationen, Interrupt-Behandlung und Gerätesteuerung;
  • Bustreiber - verantwortlich für die Aufrechterhaltung der Verbindung zwischen dem Gerät und dem Computer, tatsächlich Unterstützung des Kommunikationsbusses (z. B. PCI, USB usw.).

WDF-Modell

Während der Entwicklung hat das WDM-Modell viele Änderungen erfahren und ist erheblich gewachsen. Beginnend mit Windows Vista wurde ein weiterer Versuch unternommen, das Windows-Treiberkonzept, im Wesentlichen das damals bereits existierende WDM-Modell, weiterzuentwickeln, was zu einem neuen Modell (Add-On zu WDM) namens WDF führte.

WDF (Windows Driver Foundation, Windows Driver Foundation) ist eine Entwicklungsumgebung (eine Reihe von Tools), die die Entwicklung von Gerätetreibern für Windows-Betriebssysteme (Windows 2000 und höher) erleichtert.

Dies lag an der unbestreitbaren Tatsache, dass es den Entwicklern nicht gelungen ist, ein ausreichendes Abstraktionsniveau des WDM-Modells zu erreichen, nämlich eine unzureichende Integration des I / O-Subsystems mit Plug-and-Play-Technologie und Energieverwaltung. Dies ließ den Treiberentwickler mit einer enormen Belastung durch die Synchronisierung derselben E/A-Anforderungen mit Plug-and-Play-Ereignissen und Stromanforderungen zurück. Offensichtlich war eine weitere Vereinfachung des Treibermodells erforderlich. WDF hat WDM abgelöst und gilt als das modernste Modell.
WDF implementiert die folgenden Funktionen:

  1. "Entfernung" einiger für den Ausführungsmodus unkritischer Treiberklassen in den Benutzermodus, wodurch die Gesamtzahl der Abstürze im Kernel reduziert wurde.
  2. Ein Großteil der Handhabung der I/O-Subsystem-Interaktion mit Plug-and-Play und Power-Management wird jetzt von den eingebauten Mechanismen des WDF-Modells gehandhabt.
  3. Bereitstellung neuer interner Schnittstellen für das WDF-Modell, die eine Abstraktion von schwieriger zu verstehenden Systemschnittstellen ermöglichen; Im WDM / Legacy-Modell ist es ziemlich schwierig, die Logik einiger Teile der Interaktion mit dem Treiber zu implementieren, ohne alle Grundlagen der komplexen Kernel-Architektur zu lernen, während Sie mit WDF viele Arten der Interaktion automatisieren können. Ein großer Teil des Codes bei der Entwicklung eines WDM-Treibers kann jetzt durch WDF-Prozeduraufrufe ersetzt werden.
  4. Möglichkeit, einen "kanonischen" Treiber zu erstellen. Das Vorhandensein von Vorlagen, die einem Drittentwickler die Möglichkeit geben, Kriterien zu überschreiben, die für ihren Treiber einzigartig sind, wodurch die Entwicklungszeit verkürzt wird.

Das WDF-Modell gliedert sich in zwei Bereiche:

  • UMDF (Kernel-Mode Driver Framework) ist eine Entwicklungsumgebung für Treiber im Kernelmodus.
  • KMDF (User-Mode Driver Framework) ist eine Entwicklungsumgebung für Treiber im Benutzermodus.

Die Einteilung von Umgebungen in User- und Kernel-Modi im WDF-Modell ist eher willkürlich, da der Hauptzweck dieser Unterscheidung darin besteht, die Entwicklung von Treibern für bestimmte Geräteklassen zu klassifizieren.



Wird geladen...
Spitze