Configuration des niveaux de journalisation de SetupAPI

Vous pouvez contrôler la quantité d’informations écrites dans le journal SetupAPI, soit pour toutes les applications d’installation d’appareil , soit pour les applications d’installation d’appareils individuelles.

Pour modifier le niveau d’informations écrit dans le journal SetupAPI pour toutes les applications d’installation d’appareil, créez (ou modifiez) la valeur de Registre suivante :

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

En définissant cette valeur (à l’aide des valeurs répertoriées dans les tableaux ci-dessous), vous pouvez choisir le niveau d’erreurs journalisées, modifier le niveau de détail de la journalisation ou désactiver la journalisation. Vous pouvez également consigner des informations dans un débogueur, ainsi que dans le fichier journal.

Pour spécifier des niveaux de journalisation pour les applications d’installation d’appareils individuelles, créez une entrée de Registre sous la clé suivante :

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

Sous cette clé, créez un nom de valeur représentant le nom de fichier exécutable de l’application et attribuez le niveau de journalisation souhaité à ce nom (à l’aide des valeurs répertoriées dans les tableaux ci-dessous), par exemple service.exe=LoggingLevel.

Le niveau de journalisation est une valeur DWORD. Si cette valeur n’est pas spécifiée ou est égale à zéro, SetupAPI utilise un comportement par défaut, comme indiqué dans les tableaux ci-dessous.

La valeur DWORD est constituée de trois parties, mises en forme comme 0xSSSSDDGG. Les huit bits faibles, représentés par le masque 0x000000FF, définissent le niveau de journalisation pour les opérations générales d’installation des appareils. Les huit bits les plus élevés suivants, représentés par le masque 0x0000FF00, définissent le niveau de journalisation pour les opérations d’installation de périphérique. Les bits de poids fort sont des flags spéciaux.

Les tableaux suivants contiennent les niveaux de journalisation généraux, les niveaux de journalisation d’installation des appareils et les indicateurs de journalisation spéciaux pour Windows 2000 et versions ultérieures.

Niveaux de journalisation généraux Meaning
0x00000000 Utilisez les paramètres par défaut (actuellement 0x20).
0x00000001 Désactivée (aucune journalisation de l’installation des périphériques).
0x00000010 Consigner les erreurs.
0x00000020 Journaliser les erreurs et les avertissements.
0x00000030 Journaliser les erreurs, les avertissements et d’autres informations.
0x00000040 Journaliser les erreurs, les avertissements et d’autres informations en mode détaillé.
0x00000050 Consignez les erreurs, les avertissements et d’autres informations en mode détaillé, ainsi que les entrées horodatées.
0x00000060 Consignez les erreurs, les avertissements et d’autres informations en mode détaillé, ainsi que les horodatages. En outre, toutes les entrées sont horodatées.
0x00000070 Consignez les erreurs, les avertissements et d’autres informations en mode verbeux, ainsi que les messages d’horodatage. Toutes les entrées sont horodatées. Des messages supplémentaires qui peuvent ralentir le système, tels que les accès au cache, sont inclus.
0x000000FF Spécifie la journalisation la plus détaillée disponible.
Niveaux de journalisation de l’appareil Meaning
0x00000000 Utilisez les paramètres par défaut (actuellement 0x3000).
0x00000100 Désactivée (aucune journalisation de l’installation du périphérique).
0x00001000 Consignez les erreurs.
0x00002000 Journaliser les erreurs et les avertissements.
0x00003000 Journaliser les erreurs, les avertissements et d’autres informations.
0x00004000 Journaliser les erreurs, les avertissements et d’autres informations en mode détaillé.
0x00005000 Consignez les erreurs, les avertissements et d’autres informations en mode détaillé, ainsi que les entrées horodatées.
0x00006000 Consignez les erreurs, les avertissements et d’autres informations en mode détaillé, ainsi que les horodatages. En outre, toutes les entrées sont horodatées.
0x00007000 Consignez les erreurs, les avertissements et d’autres informations en mode verbeux, ainsi que les messages d’horodatage. Toutes les entrées sont horodatées. Des messages supplémentaires qui peuvent ralentir le système, tels que les accès au cache, sont inclus.
0x0000FF00 Spécifie la journalisation la plus détaillée disponible.
Drapeaux spéciaux Meaning
0x08000000 (Windows XP et versions ultérieures) Ajoutez un horodatage à toutes les entrées du journal.
0x20000000 (Windows XP et versions ultérieures) Ne forcez pas l’écriture des informations de journalisation sur le disque après l’écriture de chaque entrée. (La journalisation est plus rapide, mais les informations peuvent être perdues si le système se bloque.)
0x40000000 Écrivez les entrées de journal chronologiquement au lieu de regrouper les entrées.
0x80000000 Envoyez la sortie au débogueur ainsi qu’au fichier journal.

Par exemple, SetupAPI interprète certains exemples de valeurs LoggingFlags comme suit :

  • 0x00000000 signifie la journalisation par défaut.

  • 0x0000FFFF signifie la journalisation détaillée.

  • 0x8000FF00 signifie journaliser les informations détaillées relatives à l’installation du périphérique dans le fichier journal et vers le débogueur.

Pour modifier les niveaux de journalisation SetupAPI par défaut lors d’une installation propre, modifiez le Registre pendant la période entre la configuration en mode texte et la configuration en mode GUI. Les étapes suivantes décrivent la procédure. Ces étapes supposent que vous installez sur D :\Winnt et que vous disposez d’une build opérationnelle de la même version de Windows sur une autre partition. Modifiez les niveaux de journalisation SetupAPI comme suit :

  1. Démarrez l’installation de la build propre que vous testez.

  2. Arrêtez le processus d’installation pendant le premier démarrage après la configuration en mode texte (autrement dit, avant la configuration en mode GUI).

  3. Démarrez dans la version opérationnelle en la sélectionnant dans le menu de démarrage, puis connectez-vous en tant qu’administrateur.

  4. Recherchez les ruches du Registre (fichiers) dans D :\Winnt\System32\config. Dans ce cas, vous devez modifier la ruche de Registre dans Software.sav.

  5. Sur Windows 2000, exécutez Regedt32, sélectionnez la fenêtre « HKEY_LOCAL_MACHINE sur l’ordinateur local », puis sélectionnez la clé HKEY_LOCAL_MACHINE. Cliquez ensuite sur le menu Registry et sélectionnez Load Hive.

    Sur Windows XP et versions ultérieures, exécutez RegEdit. Mettez en surbrillance HKEY_LOCAL_MACHINE, cliquez sur le menu Fichier et sélectionnez Charger la ruche.

  6. Parcourez les fichiers et sélectionnez D :\Winnt\System32\config\software.sav. Lorsque le nom de clé vous est demandé, entrez « _sw.sav »

  7. Ouvrez la clé _sw.sav sous HKEY_LOCAL_MACHINE et mettez en surbrillance la clé suivante :

    HKEY_LOCAL_MACHINE_sw.sav\Microsoft\Windows\CurrentVersion\Setup
    

    Dans Windows 2000, cliquez sur le menu Sécurité, sélectionnez Permissions et accordez un contrôle total à Administrateur.

    Dans Windows XP et versions ultérieures, cliquez sur le menu Édition, sélectionnez Autorisations et accordez un contrôle total à l’administrateur.

  8. Sur Windows 2000, ajoutez les valeurs de Registre nécessaires sous cette clé en cliquant sur Modifier et en sélectionnant Ajouter une valeur.

    Sur Windows XP et versions ultérieures, cliquez sur Édition et sélectionnez Nouvelle valeur DWORD.

    Entrez la valeur. Par exemple, ajoutez « 0xFFFF » pour activer la journalisation détaillée complète.

  9. Sélectionnez HKEY_LOCAL_MACHINE\_sw.sav, puis déchargez la ruche (à l’aide du menu Registre sur Windows 2000, ou du menu Fichier sur Windows XP et versions ultérieures). La clé _sw.sav doit disparaître.

  10. Copiez D:\Winnt\System32\config\software.sav vers D:\Winnt\System32\config\software.

  11. Redémarrez et passez au programme d’installation.

  12. Pour vérifier cette modification, appuyez sur Maj+F10 en mode GUI, puis exécutez regedit.exe et vérifiez le niveau de journalisation.