Freigeben über


Test-Signierung

Ab Windows Vista benötigten x64-basierte Versionen von Windows alle Software, die im Kernelmodus ausgeführt wird, einschließlich Treibern, um digital angemeldet zu werden, um geladen zu werden. Zunächst könnten Sie den F8-Schalter (auf jedem Start, vor dem Laden von Windows) verwenden, um die Erzwingung der Ladezeit vorübergehend zu deaktivieren, wenn eine gültige Signatur in Ihrem Treiber erforderlich ist. Aber dies wird nach den ersten Verwendungen mühsam werden. Sie können einen Kerneldebugger an Ihren Testcomputer anfügen, der die gleichen Erzwingungsprüfungen für die Ladezeit deaktiviert, nachdem Sie die richtigen BCDEdit-Befehle verwendet haben. Schließlich wird es jedoch notwendig sein, den Treiber während der Entwicklung zu testen und schließlich den Treiber freizugeben, bevor er für Benutzer veröffentlicht wird.

Installieren eines nicht signierten Treibers während der Entwicklung und der Tests

Auszug aus der Installation eines nicht signierten Treibers während der Entwicklung und test:

Standardmäßig werden 64-Bit-Versionen von Windows Vista und neueren Versionen von Windows nur dann einen Kernelmodustreiber geladen, wenn der Kernel die Treibersignatur überprüfen kann. Dieses Standardverhalten kann jedoch während der frühen Treiberentwicklung und für nicht automatisierte Tests deaktiviert werden. Entwickler können einen der folgenden Mechanismen verwenden, um die Erzwingung der Ladezeit einer gültigen Treibersignatur vorübergehend zu deaktivieren. Um jedoch das Testen eines Treibers, der von Plug & Play (PnP) installiert wird, vollständig zu automatisieren, muss die Katalogdatei des Treibers signiert werden. Das Signieren des Treibers ist erforderlich, da Windows Vista und höhere Versionen von Windows ein Dialogfeld zum Signieren von Treibern für nicht signierte Treiber anzeigen, für die ein Systemadministrator die Installation des Treibers autorisieren muss. Dadurch kann verhindert werden, dass benutzer ohne die erforderlichen Berechtigungen den Treiber installieren und das Gerät verwenden. Dieses PnP-Treiberinstallationsverhalten kann unter Windows Vista und höheren Versionen von Windows nicht deaktiviert werden.

Verwenden der Option "Erweiterter F8-Start"

Windows Vista und höhere Versionen von Windows unterstützen die Option für den erweiterten F8-Start – "Erzwingen von Treibersignaturen deaktivieren", die die Erzwingung der Ladezeitsignatur für einen Kernelmodustreiber nur für die aktuelle Systemsitzung deaktiviert. Diese Einstellung wird nicht über Systemneustarts hinweg beibehalten.

Der folgende Startoptionsbildschirm wird während des Neustarts angezeigt, der die Option zum Deaktivieren der Erzwingung der Treibersignatur bereitstellt. Diese Bereitstellung ermöglicht die Installation eines nicht signierten Treibers für Testzwecke.

Screenshot mit den erweiterten F8-Startoptionen.

Anfügen eines Kerneldebuggers zum Deaktivieren der Signaturüberprüfung

Durch das Anfügen eines aktiven Kerneldebuggers an einen Entwicklungs- oder Testcomputer wird die Erzwingung der Ladezeitsignatur für Kernelmodustreiber deaktiviert. Um diese Debugkonfiguration zu verwenden, fügen Sie einen Debugcomputer an einen Entwicklungs- oder Testcomputer an, und aktivieren Sie das Kerneldebugging auf dem Entwicklungs- oder Testcomputer, indem Sie den folgenden Befehl ausführen:

bcdedit -debug on

Um BCDEdit zu verwenden, muss der Benutzer Mitglied der Gruppe "Administratoren" im System sein und den Befehl über eine Eingabeaufforderung mit erhöhten Rechten ausführen. Um ein Eingabeaufforderungsfenster mit erhöhten Rechten zu öffnen, erstellen Sie eine Desktopverknüpfung zum Cmd.exe, halten Sie die Verknüpfung gedrückt (oder klicken Sie mit der rechten Maustaste darauf), und wählen Sie "Als Administrator ausführen" aus.

Beachten Sie jedoch, dass es auch Situationen gibt, in denen ein Entwickler möglicherweise einen Kerneldebugger anfügen muss, aber auch die Erzwingung der Ladezeitsignatur beibehalten muss. Siehe Anhang 1: Erzwingen der Überprüfung der Kernelmodussignatur im Kerneldebuggingmodus , um dies zu erreichen.

Testen des Treiberpakets

Anstatt die oben genannten beiden Methoden zum Umgehen der Anforderungen an die Erzwingung der Treibersignatur zu verwenden, besteht der beste Ansatz darin, ein Treiberpaket zu testen. Die Installation von Testsignaturen und Treibern kann auf dem Entwicklungscomputer erfolgen. Sie können jedoch zwei Computer haben, eine für die Entwicklung und Signatur und die andere zum Testen.

Auszug aus dem Test signieren eines Treiberpakets:

Signieren des Computers

Dies ist der Computer, der zum Testen eines Treiberpakets für Windows Vista und neuere Versionen von Windows verwendet wird. Auf diesem Computer muss Windows XP SP2 oder höhere Versionen von Windows ausgeführt werden. Um die Treibersignaturtools verwenden zu können, muss auf diesem Computer windows Vista und höhere Versionen des Windows Driver Kit (WDK) installiert sein. Dies kann auch der Entwicklungscomputer sein.

Testcomputer

Dies ist der Computer, der zum Installieren und Testen des testsignierten Treiberpakets verwendet wird. Auf diesem Computer muss Windows Vista oder höhere Versionen von Windows ausgeführt werden.

Testsignaturverfahren

Treiberpakete enthalten die Treiber-Binärdatei, die INF-Datei, die CAT-Datei und alle anderen erforderlichen Dateien. Ein Treiberpaket kann Unterverzeichnisse wie x86, AMD64, IA64 enthalten, wenn der Treiber für mehrere Zielprozessortypen erstellt wird. Führen Sie diese Schritte mithilfe Ihres Entwicklungs-/Signaturcomputers aus.

Das folgende Verfahren beschreibt die Schritte zum Testen des Signierens eines Treiberpakets:

  1. Erstellen Sie den Treiber für das Ziel. Wenn Sie einen Treiber für Windows 8.0 oder Windows 8.1 erstellen, verwenden Sie Visual Studio 2012 oder Visual Studio 2013, wobei der entsprechende WDK installiert ist, z. B. Windows 8.0 oder 8.1 WDK.

    Alle unten beschriebenen Befehlstools sollten aus dem entsprechenden Tool-/Build-Befehlsfenster von Visual Studio 2012 oder Visual Studio 2013 verwendet werden.

    Hinweis

    Die Befehlstools für Visual Studio befinden sich im Installationsverzeichnis C:\Programme (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts

    Jede der fünf Tastenkombinationen für die Eingabeaufforderung enthält Befehle, makecert.exe, inf2cat.exe, signtool.exe, certmgr.exe usw.

    Sie können die allgemeinste "Entwickler-Eingabeaufforderung für VS2013" auswählen. Die Tastenkombinationen können zur einfachen Bedienung an die Taskleiste angeheftet werden.

    Hinweis

    Beachten Sie, dass Sie mit Visual Studio anstelle des Befehlstoolansatzes für die Treibersignierung auch die Visual Studio 2013-Entwicklungsumgebung (auch als IDE bezeichnet) verwenden können, um ein Treiberpaket zu signieren. Weitere Informationen finden Sie in Anhang 2: Signieren von Treibern mit Visual Studio .

  2. Erstellen Sie einen Treiberpaketordner, und kopieren Sie die Treiberdateien, wobei alle benötigten Unterverzeichnisse beibehalten werden, z. B. C:\DriverTestPackage.

  3. Erstellen Sie eine Inf-Datei für das Treiberpaket. Testen Sie die Inf-Datei mithilfe des InfVerif-Tools von WDK in der Inf-Datei, sodass kein Fehler gemeldet wird.

  4. Auszug aus dem Erstellen von Testzertifikaten:

    Im folgenden Befehlszeilenbeispiel wird MakeCert verwendet, um die folgenden Aufgaben auszuführen:

    • Erstellen Sie ein selbstsigniertes Testzertifikat mit dem Namen Contoso.com(Test). Dieses Zertifikat verwendet denselben Namen für den Antragstellernamen und die Zertifizierungsstelle (Ca).

    • Fügen Sie eine Kopie des Zertifikats in eine Ausgabedatei ein, die ContosoTest.cer heißt.

    • Fügen Sie eine Kopie des Zertifikats in einen Zertifikatspeicher mit dem Namen "PrivateCertStore" ein. Wenn Sie das Testzertifikat in PrivateCertStore platzieren, bleibt es von anderen Zertifikaten getrennt, die sich möglicherweise im System befinden.

    Verwenden Sie den folgenden MakeCert-Befehl, um das zertifikat Contoso.com(Test) zu erstellen:

    makecert -r -pe -ss PrivateCertStore -n CN=Contoso.com(Test) ContosoTest.cer
    

    Hierbei gilt:

    • Mit der Option -r wird ein selbstsigniertes Zertifikat mit demselben Aussteller- und Antragstellernamen erstellt.

    • Die Option -pe gibt an, dass der private Schlüssel, der dem Zertifikat zugeordnet ist, exportiert werden kann.

    • Die Option -ss gibt den Namen des Zertifikatspeichers an, der das Testzertifikat (PrivateCertStore) enthält.

    • Die Option -n CN= gibt den Namen des Zertifikats an, Contoso.com(Test). Dieser Name wird mit dem SignTool-Tool verwendet, um das Zertifikat zu identifizieren.

    • ContosoTest.cer ist der Dateiname, der eine Kopie des Testzertifikats enthält, Contoso.com(Test). Die Zertifikatdatei wird verwendet, um das Zertifikat dem Zertifikatspeicher für vertrauenswürdige Stammzertifizierungsstellen und dem Zertifikatspeicher für vertrauenswürdige Herausgeber hinzuzufügen.

    Auszug aus dem Anzeigen von Testzertifikaten:

    Nachdem das Zertifikat erstellt und eine Kopie im Zertifikatspeicher abgelegt wurde, kann das Microsoft Management Console (MMC)-Zertifikat-Snap-In verwendet werden, um es anzuzeigen. Führen Sie die folgenden Schritte aus, um ein Zertifikat über das MMC-Zertifikat-Snap-In anzuzeigen:

    1. Führen Sie Certmgr.msc aus, um das Zertifikat-Snap-In zu starten.

    2. Erweitern Sie im linken Bereich des Zertifikat-Snap-Ins den Ordner "PrivateCertStore-Zertifikatspeicher", und doppelklicken Sie auf "Zertifikate".

    Der folgende Screenshot zeigt die Snap-In-Ansicht "Zertifikate" des Zertifikatspeicherordners "PrivateCertStore ".

    Screenshot des Zertifikatspeichers mit dem Testzertifikat.

    Um die Details zum zertifikat Contoso.com(Test) anzuzeigen, doppelklicken Sie im rechten Bereich auf das Zertifikat. Der folgende Screenshot zeigt die Details zum Zertifikat.

    Screenshot des Zertifikatfensters, in dem allgemeine Informationen zum contoso.com (Test)-Zertifikat angezeigt werden.

    Beachten Sie, dass das Dialogfeld "Zertifikat" besagt: "Dieses Zertifizierungsstellenstammzertifikat ist nicht vertrauenswürdig. Um die Vertrauensstellung zu aktivieren, installieren Sie dieses Zertifikat im Speicher für vertrauenswürdige Stammzertifizierungsstellen." Dies ist das erwartete Verhalten. Das Zertifikat kann nicht überprüft werden, da Windows der ausstellenden Behörde nicht vertraut, standardmäßig "Contoso.com(Test)".

  5. Erstellen Sie eine Katalogdatei (CAT-Erweiterung). Verwenden Sie das Inf2cat-Tool wie unten dargestellt, um die Katalogdatei zu erstellen. Beachten Sie, dass für die Switches kein Leerzeichen zulässig ist, /driver:<no space><full path>, /os: :<no space><os1 name>,:<no space><os2 name>.

    inf2cat  /v  /driver:C:\DriverTestPackage  /os:7_64,7_x86 ,XP_X86
    

    Dadurch wird eine Katalogdatei mit dem in der INF-Datei des Treibers angegebenen Namen erstellt. Zusätzliche durch Trennzeichen getrennte OSes können selektiv oder alle wie unten dargestellt ohne Leerzeichen hinzugefügt werden.

    /os:2000,XP_X86,XP_X64,Server2003_X64,Vista_X64,Vista_X86,7_x86,7_64,Server2008_x86,Server2008_x64,Sever2008_IA64,Server2008R2_x86,Server2008R2_x64,Server2008R2_IA64,8_x86,8_x64, 8_ARM, Server8_x64
    

    Die aktualisierte Inf2cat aus dem neuen WDK 8.1 verfügt über /os-Optionswerte von 6_3_X86, 6_3_X64, 6_3_ARM und SERVER_6_3_X64.

    Beispiel für die INF-Datei für den Abschnitt "Version".

    [Version]
    Signature="$WINDOWS NT$"
    Class=TOASTER
    ClassGuid={B85B7C50-6A01-11d2-B841-00C04FAD5171}
    Provider=%ToastRUs%
    DriverVer=09/21/2006,6.0.5736.1
    CatalogFile.NTx86 = tostx86.cat
    CatalogFile.NTIA64 = tostia64.cat
    CatalogFile.NTAMD64 = tstamd64.cat
    PnpLockdown = 1
    

    Die Option /driver (oder /drv) gibt das Verzeichnis an, das mindestens eine INF-Datei enthält. In diesem Verzeichnis werden Katalogdateien für diese INF-Dateien erstellt, die eine oder mehrere CatalogFile-Direktiven enthalten. Der Name der Katalogdatei ist nicht auf den Namen 8.3 beschränkt.

    Inf2Cat erstellt die Katalogdatei tstamd64.cat, wenn das Befehlszeilenargument /os:7_X64 verwendet wird. Ebenso erstellt das Tool die Katalogdatei toastx86.cat, wenn die Option "/os:XP_X86", ähnlich für Server2008R2_IA64 verwendet wird. Falls nur eine Katalogdatei gewünscht ist, reicht nur ein Eintrag in der INF-Datei aus, wie unten dargestellt.

    CatalogFile.NT = toaster.cat
    

    Oder

    CatalogFile = toaster.cat
    

    Wenn das Datum in der INF-Datei nicht größer als das Veröffentlichungsdatum des Betriebssystems ist, wird der folgende Fehler vom Inf2cat-Tool gemeldet, wenn der Parameter "/os" für Windows 7 und das in der INF-Datei festgelegte Datum ein früheres Datum war.

    Signability test failed.
    Errors:
    22.9.7: DriverVer set to incorrect date (must be postdated to 4/21/2009 for newest OS) in \toaster.inf
    

    Das Inf2cat-Tool ist sehr streng beim Überprüfen der einzelnen Ordner und Unterordner über das Vorhandensein jeder Datei mit einem Eintrag in der INF-Datei. Bei solchen fehlenden Einträgen werden aussagekräftige Fehlermeldungen angezeigt.

    Die Cat-Datei kann im Explorer geöffnet werden, indem Sie auf die Datei doppelklicken oder mit der rechten Maustaste klicken und "Öffnen" auswählen. Auf der Registerkarte "Sicherheit" werden einige Einträge mit GUID-Werten angezeigt. Wenn Sie einen GUID-Wert auswählen, werden Details einschließlich der Treiberdateien des Treiberpakets und der OSes angezeigt, die wie unten dargestellt hinzugefügt wurden:

    OSAttr  2:5.1,6.1
    

    Die Nummer 5.1 ist die Versionsnummer für XP OS und 6.1 für Windows 7.0-Betriebssystem.

    Es ist ratsam, die Katzendatei zu überprüfen, um die Aufnahme der Treiberdateien und der ausgewählten OSes zu überprüfen. Wenn eine Treiberdatei hinzugefügt oder entfernt wird, wurde die INF-Datei geändert, die Cat-Datei muss neu erstellt und erneut signiert werden. Alle Auslassungen hier führen zu Installationsfehlern, die in der Setupprotokolldatei gemeldet werden (setupapi.dev.log für Vista und höher oder setupapi.log Datei für XP).

  6. Auszug aus der Testsignierung der Katalogdatei eines Treiberpakets:

    Die folgende Befehlszeile zeigt, wie Sie SignTool ausführen, um Folgendes auszuführen:

    • Testen Sie die tstamd64.cat Katalogdatei des ToastPkg-Beispieltreiberpakets. Weitere Informationen dazu, wie diese Katalogdatei erstellt wurde, finden Sie unter Erstellen einer Katalogdatei zum Testen des Signierens eines Treiberpakets.

    • Verwenden Sie das zertifikat Contoso.com(Test) aus dem PrivateCertStore für die Testsignatur. Weitere Informationen dazu, wie dieses Zertifikat erstellt wurde, finden Sie unter Erstellen von Testzertifikaten.

    • Zeitstempelt die digitale Signatur über eine Zeitstempelautorität (Time Stamp Authority, TSA).

    Führen Sie die folgende Befehlszeile aus, um die tstamd64.cat Katalogdatei zu testen:

    signtool sign /v /s PrivateCertStore /n Contoso.com(Test) /t http://timestamp.digicert.com tstamd64.cat
    

    Hierbei gilt:

    • Der Signierbefehl konfiguriert SignTool, um die angegebene Katalogdatei zu signieren, tstamd64.cat.

    • Die Option "/v " aktiviert ausführliche Vorgänge, in denen SignTool erfolgreiche Ausführungs- und Warnmeldungen anzeigt.

    • Die Option /s gibt den Namen des Zertifikatspeichers (PrivateCertStore) an, der das Testzertifikat enthält.

    • Die Option "/n " gibt den Namen des Zertifikats (Contoso.com(Test)) an, das im angegebenen Zertifikatspeicher installiert ist.

    • Die Option /t gibt die URL der TSA (http://timestamp.digicert.com) an, die die digitale Signatur zeitstempelt.

    Wichtig

    Das Einschließen eines Zeitstempels stellt die erforderlichen Informationen für die Schlüsselsperrung bereit, falls der private Schlüssel des Signierers kompromittiert wird.

  • tstamd64.cat gibt den Namen der Katalogdatei an, die digital signiert wird.

tstamd64.cat gibt den Namen der Katalogdatei an, die digital signiert wird. Sie können die Katzendatei wie zuvor beschrieben öffnen.

  1. Geänderter Auszug aus der Testsignierung eines Treibers über eine eingebettete Signatur:

    • In 64-Bit-Versionen von Windows Vista und höheren Versionen von Windows geben die Codesignaturanforderungen für den Kernelmodus an, dass ein Starttreiber über eine eingebettete Signatur verfügen muss. Dies ist unabhängig davon erforderlich, ob das Treiberpaket des Treibers über eine digital signierte Katalogdatei verfügt.

    Unten sehen Sie den Befehl zum Einbetten einer Kernelmodustreiber-Binärdatei.

    signtool sign  /v  /s  PrivateCertStore  /n  Contoso.com(Test)  /t http://timestamp.digicert.com   amd64\toaster.sys
    

    amd64\toaster.sys gibt den Namen der Binärdatei für den Kernelmodus an, die eingebettet werden soll.

    Im Installationsverzeichnis WDK 7.1 befindet sich das Toasterbeispiel im Verzeichnis "src\general\toaster\toastpkg\toastcd\". Die Windows 8- oder 8.1-WDK-Beispiele werden von der Microsoft-Downloadwebsite heruntergeladen. Die Beispiele enthalten nicht das Windows 8- oder 8.1 Windows Driver Kit.

    Die Katalogdatei beim Öffnen durch Doppelklicken auf die Datei im Windows-Explorer wird der folgende Screenshot angezeigt. Beachten Sie, dass "Signatur anzeigen" jetzt hervorgehoben ist.

    Screenshot mit allgemeinen Informationen zur Sicherheitskatalogdatei.

    Wenn Sie "Signatur anzeigen" auswählen, wird der folgende Screenshot angezeigt, der die nächste Anzeigeoption von "Zertifikat anzeigen" bereitstellt, wodurch die Option "Zertifikat installieren" im Dialogfeld selbst angezeigt wird. Nachfolgend stellen wir die bevorzugte Befehlszeilenoption zum Installieren des Zertifikats mithilfe des certmgr.exe-Tools bereit.

    Screenshot mit allgemeinen Informationen zu den Details der digitalen Signatur.

    Screenshot mit allgemeinen Informationen zum Zertifikat.

Der Treiber kann jetzt entweder auf dem Signiercomputer oder auf dem Testcomputer getestet werden. Wenn Sie den Testcomputer verwenden, kopieren Sie das Treiberpaket auf den Computer, wobei die Dateistruktur intakt bleibt. Das Tool certmgr.exe muss auch auf den Testcomputer kopiert werden. Kopieren Sie bei Verwendung eines Testcomputers das testsignierte Toastpkg-Treiberpaket in den temporären Ordner "c:\toaster".

Im folgenden Verfahren werden die Schritte beschrieben, die auf beiden Computern zum Testen des Treibers verwendet werden:

  1. Führen Sie in einem Befehlsfenster mit erhöhten Rechten den folgenden Befehl aus:

    bcdedit  /set  testsigning  on
    

    Starten Sie den Computer neu.

  2. Ausgewählte Auszüge aus der Verwendung von CertMgr zum Installieren von Testzertifikaten auf einem Testcomputer:

    Kopieren Sie die Zertifikatdatei (.cer), die zum Testen von Treibern verwendet wurde, auf den Testcomputer. Sie können die Zertifikatdatei in ein beliebiges Verzeichnis auf dem Testcomputer kopieren.

    Mit dem folgenden Befehl "CertMgr" wird das Zertifikat in der Zertifikatdatei CertificateFileName.cer zum Zertifikatspeicher "Vertrauenswürdige Stammzertifizierungsstellen" auf dem Testcomputer hinzugefügt:

    CertMgr.exe /add CertificateFileName.cer /s /r localMachine root
    

    Mit dem folgenden CertMgr-Befehl wird das Zertifikat in der Zertifikatdatei CertificateFileName.cer dem Zertifikatspeicher für vertrauenswürdige Herausgeber auf dem Testcomputer hinzugefügt:

    CertMgr.exe /add CertificateFileName.cer /s /r localMachine trustedpublisher
    

    Wo (Auszüge von CertMgr):

    /add CertificateName

    Fügt das Zertifikat in der angegebenen Zertifikatdatei zum Zertifikatspeicher hinzu.

    /s

    Gibt an, dass der Zertifikatspeicher ein Systemspeicher ist.

    /r RegistryLocation

    Gibt an, dass sich der Registrierungsspeicherort des Systemspeichers unter HKEY_LOCAL_MACHINE befindet.

    CertificateStore

    Gibt den Zertifikatspeicher, trustedpublisher, ähnlich für "localMachine root" an.

    Starten Sie den Computer neu. Sie können jetzt Certmgr.msc ausführen und überprüfen, ob die ContosoTest.cer an den oben genannten beiden Speicherorten sichtbar ist. Wenn es nicht sichtbar ist, besteht eine andere Möglichkeit zum Installieren des Zertifikats darin, das Zertifikat zu öffnen und es auf den obigen beiden Knoten zu installieren und erneut zu überprüfen.

  3. Überprüfen Sie die Signatur der Cat-Datei und der Sys-Datei. Öffnen Sie ein Befehlsfenster mit erhöhten Rechten, und gehen Sie davon aus, dass die signtool.exe auf dem Computer verfügbar ist, zum Treiberpaketverzeichnis, in dem sich die Cat-, Inf- und Sys-Dateien befinden. Führen Sie die folgenden Befehle im entsprechenden Verzeichnis aus.

    Aus der Überprüfung der SPC-Signatur einer Katalogdatei:

    signtool  verify  /v  /kp  /c  tstamd64.cat  toaster.inf
    

    Führen Sie zum Überprüfen des Einbettungszeichens den folgenden Befehl aus.

    Aus der Überprüfung der Signatur einer releasesignierten Treiberdatei:

    signtool  verify  /v  /kp  toaster.sys
    

    Die beiden obigen Befehle generieren einen Fehler, da sie signiert ist und das Zertifikat kein vertrauenswürdiges Zertifikat war.

    SignTool Error: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
    

    Die oben genannten beiden Überprüfungsbefehle sind sehr nützlich bei der Freigabesignierung, die später erläutert wird.

    Der Treiber kann nun auf dem Testcomputer installiert und getestet werden. Es ist immer ratsam, dass der folgende Registrierungsschlüssel korrekt festgelegt ist, um ausführliche Protokolle in setupapi.dev.log Datei (für Windows Vista und spätere Betriebssysteme) während des Installationsvorgangs zu sammeln.

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\Loglevel=0x4800FFFF

    Benennen Sie in der Datei %SystemRoot%\inf die datei setupapi.dev.log um, bevor Sie den Treiber installieren. Nach der Installation wird ein neues Protokoll setupapi.dev.log Datei erstellt, das wertvolle Informationen enthält, die während der Installation auftreten.

    Sobald der Treiber erfolgreich installiert wurde, kann er auf dem Entwicklungscomputer oder auf dem Testcomputer getestet werden.

Installieren, Deinstallieren und Laden des testsignierten Treiberpakets

Nachdem das System in Schritt 2 neu gestartet wurde, kann das testsignierte Treiberpaket installiert und geladen werden. Es gibt zwei Möglichkeiten zum Installieren eines Treiberpakets:

  1. Mithilfe des vom Betriebssystem bereitgestellten Pnputil-Tools (pnputil.exe)

  2. Mithilfe des Devcon-Tools (devcon.exe), bei dem es sich um ein WDK-Befehlszeilentool zum Installieren von Treibern handelt, jedoch nicht weiterverteilt werden kann. Der Beispielcode des Devcon-Tools wird im WDK bereitgestellt. Um die Verteilung zu vereinfachen, können Sie Ihr eigenes Devcon-Tool aus dem Beispielcode implementieren und Ihre Version des Tools neu verteilen.

So installieren und deinstallieren Sie das Treiberpaket mit PnpUtil

Installieren des Treiberpakets:

  1. Öffnen Sie ein Befehlsfenster mit erhöhten Rechten, und legen Sie das Standardverzeichnis auf "c:\toaster" fest.

  2. Führen Sie einen der folgenden Befehle aus:

    • So stellen Sie einfach das Treiberpaket bereit: pnputil /add-driver toaster.inf

    • So stellen Sie den Treiber bereit und installieren ihn auf vorhandenen Geräten: pnputil /add-driver toaster.inf /install

Deinstallieren des Treiberpakets:

  1. Öffnen Sie ein Befehlsfenster mit erhöhten Rechten.

  2. Identifizieren Sie den Namen des OEM INF, der dem Treiberpaket entspricht, das Sie aus der liste entfernen möchten, die von pnputil /enum-drivers

  3. Führen Sie pnputil /delete-driver \<OEM INF name> /uninstall aus.

So installieren und deinstallieren Sie das Treiberpaket mithilfe von DevCon

Installieren des Treiberpakets:

  1. Öffnen Sie ein Befehlsfenster mit erhöhten Rechten, und legen Sie das Standardverzeichnis auf "c:\toaster" fest.

  2. Devcon.exe wird im WDK-Toolverzeichnis die x86-Version, die amd64-Version und die ia64-Version bereitgestellt. Kopieren Sie die relevante Version in das Verzeichnis "c:\toaster", und führen Sie den folgenden Befehl aus.

    devcon.exe update <inf> <hwid>
    

    Es ist ratsam, Zitate um <hwid> zu verwenden. Für das Toaster-Beispiel lautet dies:

    devcon.exe update c:\toaster\toaster.inf "{b85b7c50-6a01-11d2-b841-00c04fad5171}\MsToaster"
    

Deinstallieren des Treiberpakets:

Ein Treiberpaket sollte nicht aus dem System entfernt werden, während ein Gerät es noch verwendet. Wenn das Gerät entfernt werden muss, um das Treiberpaket zu entfernen, kann ein Gerät mit dem Devcon-Tool mithilfe der Option "entfernen" entfernt werden. devcon.exe /? zeigt alle Schalter für dieses Tool an. Um bestimmte Informationen zur Verwendung eines Schalters zu erhalten, sollte "Hilfe" wie unten für den Schalter "Entfernen" hinzugefügt werden.

devcon.exe help remove

Nachdem das Gerät entfernt wurde, sind zwei Befehle erforderlich, um den Treiber zu entfernen. Verwenden Sie den ersten Befehl mit der Option "dp_enum", um den Treiber-Inf-Dateinamen zu finden, der dem auf dem Computer installierten Treiberpaket entspricht.

devcon dp_enum

Dieser Befehl zeigt die Liste aller oemNnn.inf-Dateien an, die einem Treiberpaket entsprechen, wobei Nnn eine Dezimalzahl mit den Klasseninformationen und die Bereitstellen von Informationen wie unten dargestellt ist.

oem39.inf
    Provider: Intel
    Class: Network adapters
oem4.inf
    Provider: Dell
    Class: ControlVault Device

Um das entsprechende Treiberpaket aus dem DriverStore zu entfernen, verwenden Sie den folgenden Befehl für den Intel-Treiber "Netzwerkadapter":

devcon.exe dp_delete oem39.inf

Überprüfen, ob der testsignierte Treiber ordnungsgemäß funktioniert

So überprüfen Sie, ob Toastpkg ordnungsgemäß funktioniert:

  1. Geräte-Manager starten

  2. Wählen Sie "Toaster" aus der Liste der Geräte aus. Ein Beispiel finden Sie unten im Screenshot.

    Screenshot mit dem Toastergerät im Geräte-Manager.

  3. Doppelklicken Sie auf "Toaster Package Sample Toaster", und wählen Sie "Eigenschaften" aus, um das Dialogfeld "Eigenschaften" des Treibers zu öffnen.

  4. Um zu bestätigen, dass Toaster ordnungsgemäß funktioniert, aktivieren Sie auf der Registerkarte "Allgemein" das Kontrollkästchen "Gerätestatus"

Geräte-Manager können verwendet werden, um das Gerät und den Treiber über das Dialogfeld "Eigenschaften" zu deinstallieren.

Problembehandlung bei testsignierten Treibern

Informationen zur Problembehandlung bei der Treibersignierungsinstallation finden Sie bei Problemen mit diesen Verfahren.