1008 perflib service «BITS» (1/2)

Évènement 1008 Perflib : Service «BITS»

Event ID 1008 Perflib : «Échec de la procédure d’ouverture pour le service « BITS » dans la DLL « C:\Windows\System32\bitsperf.dll ». Les données de performance de ce service ne seront pas disponibles. Le premier mot (DWORD) de la section Données contient le code d’erreur.»

La correction de cette erreur est traitée en 2 parties :
– 1 ère partie  : La reconstruction des compteurs BITS
– 2 ème partie : recherche de la source d’erreur 1008 et correction (bientôt en ligne)

1 ère partie  : Reconstruction des compteurs BITS

Cette erreur m’a donné pas mal de fil à retordre. Je suis parti du fichier perfStringBackup.ini dans lequel j’ai reconstruit l’entrée [PERF_BITS] en veillant que les entrées First Counter, First Help… etc pointaient sur les bonnes chaines dans le fichier; puis j’ai sauvé le tout dans un fichier perfStringNew.ini (pour plus de détail comment reconstruire une entrée dans le fichier perfStringBackup.ini consultez cet article)

Malheureusement, malgré la présence des données de définitions du compteur BITS; le rechargement du fichier perfStringNew.ini (lodctr /r:perfrebuild.ini) n’a pas reconstruit le compteur BITS. Pour s’en convaincre il m’a suffit d’ouvrir le nouveau fichier perfstringBackup.ini produit suite à la reconstruction, l’entrée [PERF_BITS] avait disparu, signifiant l’échec de la reconstruction.

En désespoir de cause j’ai ouvert regedit à l’entrée du compteur : HKLM\SYSTEM\CurrentControlSetServices\BITS\Performance et je l’ai comparé à la même entrée sur une autre machine. J’ai constaté qu’il manquait une la chaîne “PerfMMFilename=Global\MMF_BITS_s” et surtout que l’entrée “Object List” ne pointait pas sur la même valeur que “First Counter”. J’ai donc fait les deux modifications dans le registre et ensuite lancé une  nouvelle fois le chargement des compteurs avec mon fichier modifié (lodctr /r:perfStringNew.ini), cette fois-ci avec succès. Pour m’assurer que les compteurs étaient réellement opérationnels j’ai démarré le service BITS (net start BITS sur une ligne de commande) puis j’ai pu ajouter les compteurs de ce service dans le moniteur de performance et ceci sans générer l’erreur 1008 dans l’observateur d’évènements.

Vérification : ajout des compteurs BITS dans le moniteur de performance

Résumé de la reconstruction des compteurs BITS :

  1. reconstruction de l’entrée PERF_BITS dans une copie du fichier perfStringBackup.ini
  2. correction du registre (cf copie d’écran)
  3. Chargement du fichier modifié  perfStringNew.ini  (lodctr /r:perfStringNew.ini)
regeditbits
correction de l’entrée “service\BITS\Performance\Object List” du registre