Freigeben über


Festlegen der 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 Informationen auch in einem Debugger und in der Protokolldatei protokollieren.

Um Protokollierungsebenen 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 den gewünschten Protokollierungsgrad 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 Maske 0x000000FF, legen den Protokollierungsgrad für allgemeine Geräteinstallationsvorgänge fest. Die nächsthöheren acht Bits, dargestellt durch die Maske 0x0000FF00, legen den Protokollierungsgrad für Geräteinstallationsvorgänge fest. Die höchsten Bits sind spezielle Flags.

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

Allgemeine Protokollierungsstufen Bedeutung
0x00000000 Standardeinstellungen verwenden (derzeit 0x20).
0x00000001 Aus (keine Protokollierung der Geräteinstallation).
0x00000010 Protokollfehler.
0x00000020 Protokollieren von Fehlern und Warnungen.
0x00000030 Protokollieren von Fehlern, Warnungen und anderen Informationen.
0x00000040 Protokollieren von Fehlern, Warnungen und anderen Informationen im ausführlichen Modus.
0x00000050 Protokollieren von Fehlern, Warnungen und anderen Informationen im ausführlichen Modus sowie zeitstempelte 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 Protokollieren sie Fehler, Warnungen und andere Informationen im ausführlichen Modus sowie Zeitmeldungen. Alle Einträge sind mit Zeitstempel versehen. 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 Bedeutung
0x00000000 Standardeinstellungen verwenden (derzeit 0x3000).
0x00000100 Aus (keine Protokollierung der Geräteinstallation).
0x00001000 Protokollfehler.
0x00002000 Protokollieren von Fehlern und Warnungen.
0x00003000 Protokollieren von Fehlern, Warnungen und anderen Informationen.
0x00004000 Protokollieren von Fehlern, Warnungen und anderen Informationen im ausführlichen Modus.
0x00005000 Protokollieren von Fehlern, Warnungen und anderen Informationen im ausführlichen Modus sowie zeitstempelte Einträge.
0x00006000 Protokollieren Sie Fehler, Warnungen und andere Informationen im ausführlichen Modus sowie Zeiteinträge. Darüber hinaus werden alle Einträge mit Zeitstempel versehen.
0x00007000 Protokollieren sie Fehler, Warnungen und andere Informationen im ausführlichen Modus sowie Zeitmeldungen. Alle Einträge sind mit 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 Bedeutung
0x08000000 (Windows XP und höher) Fügen Sie allen Protokolleinträgen einen Zeitstempel hinzu.
0x20000000 (Windows XP und höher) Leeren Sie die Protokollierungsinformationen nicht auf den Datenträger, nachdem die einzelnen Einträge geschrieben wurden. (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 sowohl an den Debugger als auch an die Protokolldatei.

SetupAPI interpretiert beispielsweise einige LoggingFlags-Beispielwerte wie folgt:

  • 0x00000000 bedeutet die Standardprotokollierung.

  • 0x0000FFFF bedeutet ausführliche Protokollierung.

  • 0x8000FF00 bedeutet, dass ausführliche Geräteinstallationsinformationen sowohl in der Protokolldatei als auch im Debugger protokolliert werden.

Um die Standardmäßigen SetupAPI-Protokollierungsebenen während einer sauber Installation zu ändern, bearbeiten Sie die Registrierung während des Zeitraums zwischen der Einrichtung des Textmodus und der Einrichtung des GUI-Modus. In den folgenden Schritten wird das Verfahren beschrieben. 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 sauber Build, den Sie testen.

  2. Beenden Sie den Setupvorgang während des ersten Startvorgangs nach der Einrichtung im Textmodus (also vor der Einrichtung des 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 unter Windows 2000 Regedt32 aus, wählen Sie das Fenster "HKEY_LOCAL_MACHINE auf dem lokalen Computer" aus, und wählen Sie die HKEY_LOCAL_MACHINE-Taste aus. Klicken Sie dann auf das Menü Registrierung , und wählen Sie Hive laden aus.

    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 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 Schlüssel _sw.sav 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 gewähren 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 vollständige ausführliche Protokollierung zu aktivieren.

  9. Wählen Sie HKEY_LOCAL_MACHINE\_sw.sav aus, und entladen Sie die Struktur ( über das Registrierungsmenü unter Windows 2000 oder über das Menü Datei unter Windows XP und höher),The_sw.sav-Schlüssel sollte ausgeblendet werden.

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

  11. Starten Sie neu, und fahren Sie mit Setup fort.

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