DCH-Entwurfsprinzipien und bewährte Methoden

Auf dieser Seite werden Die Entwurfsprinzipien und bewährten Methoden für Windows beschrieben.

DCH-Entwurfsprinzipien

Es gibt drei Entwurfsprinzipien, die für einen Windows-Treiber als DCH-kompatibel zu berücksichtigen sind:

  • Deklarativ (D): Installieren Sie den Treiber nur mit deklarativen INF-Direktiven. Schließen Sie keine Co-Installer oder RegisterDll-Funktionen ein.

  • Componentized (C): Editionsspezifische, OEM-spezifische und optionale Anpassungen am Treiber sind vom Basistreiberpaket getrennt. Daher kann der Basistreiber, der nur kernige Gerätefunktionen bietet, unabhängig von den Anpassungen als Ziel, Flight und Service verwendet werden.

  • Hardwareunterstützungs-App (H): Jede Benutzeroberflächenkomponente, die einem Windows-Treiber zugeordnet ist, muss als Hardwaresupport-App (HSA) gepackt oder auf dem OEM-Gerät vorinstalliert sein. Ein HSA ist eine optionale gerätespezifische App, die mit einem Treiber gekoppelt ist. Die Anwendung kann eine Universelle Windows-Plattform (UWP) oder eine Desktop-Brücke sein. Sie müssen ein HSA über die Microsoft Store. Weitere Informationen finden Sie unter HardwareSupport-App (HSA): Schritte für Treiberentwickler und Hardwaresupport-App (HSA): Schritte für App-Entwickler.

Das Akronym "DCH" bezieht sich auf die oben aufgeführten Prinzipien. Informationen dazu, wie ein Treiberbeispiel DCH-Entwurfsprinzipien anwenden kann, finden Sie auf der Seite DCH-kompatibles Treiberpaket – Beispiel.

Übersicht

DCH-kompatible Treiberpakete enthalten eine INF-Datei und Binärdateien, die auf UWP-basierten Editionen (Universelle Windows-Plattform) von Windows. Sie werden auch auf anderen Editionen von Windows 10 und 11 installiert und ausgeführt, die einen gemeinsamen Satz von Schnittstellen gemeinsam nutzen.

DCH-kompatible Treiberbinärdateien können KMDF, UMDF 2 oder das Windows Driver Model (WDM) verwenden.

DCH-kompatible Treiber bestehen aus den folgenden Teilen:

  • Ein Basistreiber
  • Optionale Komponentenpakete
  • Eine optionale Hardwareunterstützungs-App

Der Basistreiber enthält alle Kernfunktionen und den freigegebenen Code. Die optionalen Komponentenpakete können Anpassungen und zusätzliche Einstellungen enthalten.

In der Regel schreibt ein Gerätehersteller oder unabhängiger Hardwarehersteller (Independent Hardware Vendor, IHV) den Basistreiber. Anschließend stellt ein Systemgenerator oder Originalgerätehersteller (Original Equipment Manufacturer, OEM) optionale Komponentenpakete zur Verfügung.

Nachdem eine IHV das Basistreiberpaket zertifiziert hat, kann es auf allen OEM-Systemen bereitgestellt werden. Da ein Basistreiberpaket auf allen Systemen verwendet werden kann, die ein Hardwareteil gemeinsam nutzen, kann Microsoft das Basistreiberpaket umfassend über Windows Insider Flighting testen, anstatt die Verteilung auf bestimmte Computer zu beschränken.

Der OEM überprüft nur die optionalen Anpassungen, die er für das OEM-System bietet.

Anforderungen

Führen Sie die folgenden Schritte aus, um ein Treiberpaket zu erstellen, das den DCH-Entwurfsprinzipien folgt:

  • Erstellen Sie eine INF-Datei für Ihren Treiber:
    1. Überprüfen Sie die Liste der INF-Abschnitte und -Anweisungen, die in Windows Treiberpaketen gültig sind.
    2. Verwenden Sie das InfVerif-Tool, um zu überprüfen, ob die INF-Datei Ihres Treiberpakets die Deklarativen (D)-Anforderungen für Windows erfüllt. Es sollte übergeben werden infverif /w.
  • Stellen Sie sicher, dass alle optionalen Komponentenpakete, die keine Kerntreiberfunktionen enthalten, vom Basistreiberpaket getrennt sind.
  • Hardwareunterstützungsanwendungen, die Ihrem Treiberpaket zugeordnet sind, müssen über die Microsoft Store.

Bewährte Methoden

  • Wenn Sie das Windows Driver Kit (WDK) mit der neuesten verfügbaren Visual Studio verwenden, legen Sie den Wert für Zielplattform in den Eigenschaften des Treiberprojekts auf festWindows Driver. Dadurch werden automatisch die richtigen Bibliotheken addiert, und die richtige INF-Validierung und ApiValidator werden als Teil des Build ausgeführt. Dazu ist Folgendes erforderlich:

    1. Öffnen Sie die Eigenschaften des Treiberprojekts.
    2. Wählen Sie Treiber Einstellungen.
    3. Verwenden Sie das Dropdownmenü, um Zielplattform auf zu setzen Windows Driver.
  • Wenn Ihre INF benutzerdefinierte Setupaktionen ausführt, die von der Zielplattform abhängen, sollten Sie sie in eine Erweiterungs-INF auftrennen. Sie können eine Erweiterungs-INF unabhängig vom Basistreiberpaket aktualisieren, um sie stabiler und serviceabler zu machen. Weitere Informationen finden Sie unter Verwenden einer Erweiterungs-INF-Datei.

  • Wenn Sie eine Anwendung bereitstellen möchten, die mit Ihrem Gerät funktioniert, fügen Sie eine UWP-App ein. Weitere Informationen finden Sie unter HardwareSupport-App (HSA): Schritte für Treiberentwickler. Ein OEM kann eine solche App mithilfe von DISM vorab laden – Abbildverwaltung für die Bereitstellung. Oder Benutzer können die App manuell aus dem Microsoft Store.

  • Legen Sie im Abschnitt INF DestinationDirs die Zielverzeichnisse auf dirid 13 fest , damit der Treiber aus dem Treiberspeicher ausgeführt wird. Diese Einstellung funktioniert für einige Geräte nicht.