Festlegen von SetupAPI-Protokollierungsebenen

Sie können die Menge der Informationen steuern, die in das SetupAPI-Protokoll geschrieben werden, entweder für alle Geräteinstallationsanwendungen oder für einzelne Geräteinstallationsanwendungen.

Um die Ebene der Informationen zu ändern, die in das SetupAPI-Protokoll für alle Geräteinstallationsanwendungen geschrieben werden, erstellen (oder ändern) Sie den folgenden Registrierungswert:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\LogLevel

Durch Festlegen dieses Werts (unter Verwendung der in den folgenden Tabellen aufgeführten Werte) können Sie die Ebene der protokollierten Fehler auswählen, die Ausführlichkeit der Protokollierung ändern oder die Protokollierung deaktivieren. Sie können auch Informationen an einen Debugger sowie an die Protokolldatei protokollieren.

Um Protokollierungsstufen für einzelne Geräteinstallationsanwendungen anzugeben, erstellen Sie einen Registrierungseintrag unter dem folgenden Schlüssel:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\AppLogLevels

Erstellen Sie unter diesem Schlüssel einen Wertnamen, der den Namen der ausführbaren Datei der Anwendung darstellt, und weisen Sie diesem Namen die gewünschte Protokollierungsebene zu (unter Verwendung der in den folgenden Tabellen aufgeführten Werte), z. B. service.exe=LoggingLevel.

Die Protokollierungsebene ist ein DWORD-Wert. Wenn dieser Wert nicht angegeben ist oder null ist, verwendet SetupAPI ein Standardverhalten, wie in den folgenden Tabellen angegeben.

Der DWORD-Wert besteht aus drei Teilen, die als 0xSSSSDDGG formatiert sind. Die niedrigen acht Bits, dargestellt durch die Masken-0x000000FF, legen die Protokollierungsebene für allgemeine Geräteinstallationsvorgänge fest. Die nächsthöheren acht Bits, dargestellt durch die Maske 0x0000FF00, legen die Protokollierungsebene für Geräteinstallationsvorgänge fest. Die höchsten Bits sind spezielle Flags.

Die folgenden Tabellen enthalten die allgemeinen Protokollierungsebenen, Geräteinstallationsprotokollierungsebenen und spezielle Protokollierungskennzeichnungen für Windows 2000 und höher.

Allgemeine Protokollierungsebenen Meaning
0x00000000 Standardeinstellungen verwenden (derzeit 0x20).
0x00000001 Deaktiviert (keine Geräteinstallationsprotokollierung).
0x00000010 Fehler protokollieren.
0x00000020 Fehler und Warnungen protokollieren.
0x00000030 Fehler, Warnungen und andere Informationen protokollieren.
0x00000040 Protokolliert Fehler, Warnungen und andere Informationen im ausführlichen Modus.
0x00000050 Protokolliert Fehler, Warnungen und andere Informationen im ausführlichen Modus sowie zeitgestempelte Einträge.
0x00000060 Protokollieren Sie Fehler, Warnungen und andere Informationen im ausführlichen Modus sowie Zeiteinträge. Darüber hinaus werden alle Einträge mit Zeitstempel versehen.
0x00000070 Fehler, Warnungen und andere Informationen im ausführlichen Modus sowie Zeitmeldungen protokollieren. Alle Einträge sind zeitgestempelt. Zusätzliche Nachrichten, die das System verlangsamen können, z. B. Cachetreffer, sind enthalten.
0x000000FF Gibt die ausführlichste verfügbare Protokollierung an.
Geräteprotokollierungsebenen Meaning
0x00000000 Standardeinstellungen verwenden (derzeit 0x3000).
0x00000100 Deaktiviert (keine Geräteinstallationsprotokollierung).
0x00001000 Fehler protokollieren.
0x00002000 Fehler und Warnungen protokollieren.
0x00003000 Fehler, Warnungen und andere Informationen protokollieren.
0x00004000 Protokollieren Sie Fehler, Warnungen und andere Informationen im ausführlichen Modus.
0x00005000 Protokolliert Fehler, Warnungen und andere Informationen im ausführlichen Modus sowie zeitgestempelte Einträge.
0x00006000 Fehler, Warnungen und andere Informationen im ausführlichen Modus sowie Zeiteinträge protokollieren. Darüber hinaus werden alle Einträge mit Zeitstempel versehen.
0x00007000 Protokolliert Fehler, Warnungen und andere Informationen im ausführlichen Modus sowie Zeitmeldungen. Alle Einträge sind mit einem Zeitstempel versehen. Zusätzliche Nachrichten, die das System verlangsamen können, z. B. Cachetreffer, sind enthalten.
0x0000FF00 Gibt die ausführlichste verfügbare Protokollierung an.
Spezielle Kennzeichen Meaning
0x08000000 (Windows XP und höher) Fügen Sie allen Protokolleinträgen einen Zeitstempel hinzu.
0x20000000 (Windows XP und höher) Schreiben Sie Protokollierungsinformationen nicht auf den Datenträger, nachdem jeder Eintrag geschrieben wurde. (Die Protokollierung ist schneller, aber Informationen können verloren gehen, wenn das System abstürzt.)
0x40000000 Schreiben Sie Protokolleinträge chronologisch, anstatt Einträge zu gruppieren.
0x80000000 Senden Sie die Ausgabe an den Debugger sowie an die Protokolldatei.

Beispielsweise interpretiert SetupAPI einige Beispiel-LoggingFlags-Werte wie folgt:

  • 0x00000000 bedeutet Standardprotokollierung.

  • 0x0000FFFF bedeutet ausführliche Protokollierung.

  • 0x8000FF00 bedeutet, ausführliche Informationen zur Geräteinstallation sowohl in der Protokolldatei als auch im Debugger zu protokollieren.

Um die standardmäßigen SetupAPI-Protokollierungsebenen während einer Neuinstallation zu ändern, bearbeiten Sie die Registrierung während des Zeitraums zwischen dem Setup im Textmodus und dem Setup im GUI-Modus. Die folgenden Schritte beschreiben das Verfahren. Bei diesen Schritten wird davon ausgegangen, dass Sie in D:\Winnt installieren und über einen funktionierenden Build derselben Version von Windows auf einer anderen Partition verfügen. Ändern Sie die SetupAPI-Protokollierungsebenen wie folgt:

  1. Starten Sie die Installation des Clean Builds, den Sie testen.

  2. Beenden Sie den Setupvorgang während des ersten Starts nach dem Setup im Textmodus (d. a. vor dem Setup im GUI-Modus).

  3. Booten Sie in den funktionsfähigen Build, indem Sie ihn im Startmenü auswählen und sich als Administrator anmelden.

  4. Suchen Sie die Registrierungsstrukturdateien in D:\Winnt\System32\config. In diesem Fall müssen Sie die Registrierungsstrukturdatei in Software.sav ändern.

  5. Führen Sie auf Windows 2000 Regedt32 aus, wählen Sie das Fenster "HKEY_LOCAL_MACHINE on Local Machine" und dann den HKEY_LOCAL_MACHINE-Schlüssel aus. Klicken Sie dann auf das Menü Registrierung und wählen Sie Struktur laden... aus.

    Führen Sie unter Windows XP und höheren Versionen RegEdit aus. Markieren Sie HKEY_LOCAL_MACHINE, klicken Sie auf das Menü Datei und wählen Sie Struktur laden aus.

  6. Durchsuchen Sie die Dateien, und wählen Sie D:\Winnt\System32\config\software.sav aus. Wenn Sie zur Eingabe des Schlüsselnamens aufgefordert werden, geben Sie "_sw.sav" ein.

  7. Öffnen Sie den _sw.sav-Schlüssel unter HKEY_LOCAL_MACHINE, und markieren Sie den folgenden Schlüssel:

    HKEY_LOCAL_MACHINE_sw.sav\Microsoft\Windows\CurrentVersion\Setup
    

    Klicken Sie unter Windows 2000 auf das Menü Sicherheit, wählen Sie Berechtigungen aus, und erteilen Sie dem Administrator Vollzugriff.

    Klicken Sie unter Windows XP und höher auf das Menü Bearbeiten, wählen Sie Berechtigungen aus, und erteilen Sie Administrator Vollzugriff.

  8. Fügen Sie unter Windows 2000 die erforderlichen Registrierungswerte unter diesem Schlüssel hinzu, indem Sie auf Bearbeiten klickend Wert hinzufügen auswählen.

    Klicken Sie unter Windows XP und höher auf "Bearbeiten", und wählen Sie "Neuer DWORD-Wert" aus.

    Geben Sie den Wert ein. Fügen Sie beispielsweise "0xFFFF" hinzu, um die ausführliche Protokollierung zu aktivieren.

  9. Wählen Sie HKEY_LOCAL_MACHINE\_sw.sav aus, und entladen Sie die Strukturdatei (unter Verwendung des Registrierungsmenüs auf Windows 2000 oder des Menüs Datei auf Windows XP und höher). Der _sw.sav-Schlüssel sollte verschwinden.

  10. Kopieren Sie D:\Winnt\System32\config\software.sav in D:\Winnt\System32\config\software.

  11. Starten Sie den Computer neu, und fahren Sie mit der Einrichtung fort.

  12. Um diese Änderung zu überprüfen, drücken Sie SHIFT+F10 im GUI-Modus-Setup, und führen Sie dann regedit.exe aus, und überprüfen Sie die Protokollierungsebene.