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 Flags Meaning
0x08000000 (Windows XP und höher) Fügen Sie allen Protokolleinträgen einen Zeitstempel hinzu.
0x20000000 (Windows XP und höher) Protokollierungsinformationen nicht nach jedem geschriebenen Eintrag auf den Datenträger leeren. (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. Starten Sie den funktionierenden Build, indem Sie ihn im Startmenü auswählen, und melden Sie sich als Administrator an.

  4. Suchen Sie die Registrierungsstrukturen (Dateien) in D:\Winnt\System32\config. In diesem Fall müssen Sie die Registrierungsstruktur 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 Hive laden.

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

  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 gewähren Sie dem Administrator Vollzugriff.

  8. Fügen Sie unter Windows 2000 die erforderlichen Registrierungswerte unter diesem Schlüssel hinzu, indem Sie auf Bearbeiten klicken und 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, und entladen Sie den Hive (über das Menü Reistrierung unter Windows 2000 oder das Menü Datei unter Windows XP und höher).

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

  11. Starten Sie neu, und fahren Sie mit dem Setup 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.