Il se peut que les interfaces Automation WMI soient à l'origine de fermetures inattendues des programmes et d'une perte des données

Traductions disponibles Traductions disponibles
Numéro d'article: 292766 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F292766
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Symptômes

Lorsque vous exécutez des programmes qui utilisent les interfaces Automation asynchrones de l'Infrastructure de gestion Windows (WMI), il se peut que les programmes en question cessent de répondre ou se ferment de manière sporadique et inattendue, pouvant entraîner une perte de données.

Résolution

Pour résoudre ce problème, procurez-vous le dernier Service Pack Windows 2000. Pour plus d'informations, consultez l'article suivant dans la Base de connaissances Microsoft :
260910 Procédure pour obtenir le dernier Service Pack Windows 2000

Statut

Microsoft a confirmé l'existence de ce problème dans Microsoft Windows 2000.

Ce problème a été corrigé dans Windows 2000 Service Pack 2.

Plus d'informations

Tous les programmes utilisant les interfaces Automation asynchrones WMI peuvent faire l'objet de comportements inattendus liés à divers problèmes de synchronisation. Il se peut que ce comportement ne soit pas identifié au cours du développement d'un programme car des événements imbriqués se produisent rarement. Bien que ce comportement n'apparaisse pas dans la plupart des systèmes, la vitesse de l'unité centrale, la vitesse du réseau, la charge du système et des variables externes peuvent le provoquer et être à l'origine de l'arrêt inattendu d'un programme ou de l'endommagement des données.

Par exemple, un nettoyage de la mémoire JScript peut entraîner le déclenchement d'événements, produisant un incident irréparable dans JScript et entraînant l'arrêt de l'exécution des scripts. Une version très récente de JScript (plus récente que Windows 2000) supprime les arrêts et les fermetures inattendus ; cependant, Automation WMI persiste à déclencher des événements de manière inappropriée. Ainsi, un événement peut être déclenché à n'importe quel moment alors même qu'un autre événement est en cours de traitement. Ceci entraîne aisément un endommagement des données dans les gestionnaires d'événements.

Considérez par exemple le Jscript suivant :
function Sink::OnObjectReady(obj, ...) {
  sz = obj.Name;
  AddLineToOutput(sz);
}
La fonction vise à ajouter une chaîne à l'affichage d'un résultat lorsque des objets sont renvoyés de manière asynchrone par le biais de l'événement OnObjectReady. Par un effet du nettoyage de la mémoire JScript, les interfaces Automation WMI peuvent déclencher un événement imbriqué entre la première et la deuxième ligne de la fonction. Il en résulte que la fonction imbriquée écrase le contenu de la variable sz au milieu de la fonction non imbriquée. Le résultat affiche alors l'événement imbriqué à deux reprises et les informations relatives à l'événement non imbriqué sont perdues.

Les problèmes générés par ce bogue sont imprévisibles car ils dépendent de la synchronisation du nettoyage de la mémoire et de la vitesse à laquelle les opérations asynchrones sont réalisées. Dans les programmes réels, ce bogue est la source de problèmes qui apparaissent rarement, seulement une fois en 40 heures d'utilisation ou au bout de plusieurs milliers d'opérations répétées et réussies.

Propriétés

Numéro d'article: 292766 - Dernière mise à jour: lundi 10 février 2014 - Version: 2.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows 2000 Professionel
  • Microsoft Windows 2000 Service Pack 1
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Service Pack 1
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
Mots-clés : 
kbnosurvey kbarchive kbbug kbfix kbwin2000presp2fix kboswin2000x KB292766
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com