Numéro d'article: 139071 - Dernière mise à jour: mercredi 26 juillet 2006 - Version: 5.4

CORRECTIF : La mise en cache de OLE Automation BSTR entraînera mémoire sources fuite dans Windows 2000

Téléchargement de correctif disponibleIl est possible de télécharger un correctif
Accéder aux téléchargements de correctif et soumettre votre demande
Agrandir tout | Réduire tout

Résumé

Cet article décrit les éléments suivants concernant cette version de correctif :
  • Problèmes résolus par le package de correctifs.
  • Les conditions préalables sont requis pour installer le package de correctifs.
  • Si vous devez redémarrer l'ordinateur après avoir installé le package de correctifs.
  • Si le package de correctifs est remplacé par un autre package de correctifs.
  • Si vous devez procédez aux modifications de Registre.
  • Les fichiers qui sont contenus dans le package de correctifs.

Symptômes

Automation (précédemment appelé OLE Automation et ActiveX Automation) met en cache de l'espace alloué pour les chaînes BSTR. Cela peut entraîner IMallocSpy à attribuer des fuites de mémoire à l'utilisateur BSTR incorrect dans une application qui utilise des chaînes BSTR d'Automation. Vous pouvez trouver la source correcte de la fuite de mémoire en désactivant cache du Automation en définissant la variable d'environnement OANOCACHE = 1 avant d'exécuter l'application. Dans de nombreuses applications serveur, le cache BSTR n'est pas nécessaire. Il existe un correctif disponible pour désactiver la mise en cache sur les ordinateurs Windows 2000 de BSTR. Windows XP et Windows Server 2003 ne nécessitent pas le correctif pour désactiver la mise en cache BSTR.

Résolution

Un correctif pris en charge est disponible auprès de Microsoft. Toutefois, il est conçu uniquement pour corriger le problème décrit dans cet article. Appliquer ce correctif uniquement aux systèmes rencontrant ce problème spécifique.

Si le correctif est disponible pour téléchargement, il existe une section «Téléchargement de correctif logiciel disponible» en haut de cet article de la base de connaissances. Si cette section n'apparaît pas, soumettre une demande de service clientèle de Microsoft et de support technique pour obtenir le correctif.

Remarque Si des problèmes supplémentaires se produisent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être créer une demande de service distincte. Les coûts habituels du support technique s'appliqueront aux autres questions et problèmes qui ne relèvent pas de ce correctif spécifique. Pour obtenir une liste complète des numéros de téléphone service clientèle de Microsoft et de support ou pour créer une demande de service distincte, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
Remarque Le formulaire «Téléchargement de correctif logiciel disponible» affiche les langues pour lesquelles le correctif est disponible. Si vous ne voyez pas votre langue, il est, car un correctif n'est pas disponible pour cette langue.

Conditions préalables

Vous devez avoir installé Windows 2000 Service Pack 4 (SP4) pour appliquer ce correctif.

Informations sur le redémarrage

Vous devez redémarrer l'ordinateur après avoir appliqué ce correctif.

Informations du Registre

Il est inutile de modifier le Registre.

Informations sur les fichiers du correctif

Ce correctif contient uniquement les fichiers qui sont nécessaires pour corriger les problèmes répertoriés dans cet article. Ce correctif peut ne pas contenir de tous les fichiers que vous devez posséder à la mise à jour complète d'un produit vers la dernière version.La version anglaise de ce correctif a les attributs de fichier (ou attributs de fichier version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriés en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, il est converti en heure locale. Pour connaître le décalage entre l'heure UTC et l'heure locale, utilisez l'onglet fuseau horaire dans l'outil date et heure dans le Panneau de configuration.
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeurePlate-forme
Asycfilt.dll2.40.4528.0143 63211 / 09 / 200513 : 05x 86
Oleaut32.dll2.40.4528.0631,05611 / 09 / 200513 : 05x 86
Olepro32.dll5.0.4528.0164,11211 / 09 / 200513 : 05x 86
Stdole2.tlb2.40.4528.016 89623 / 08 / 200502 : 13

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section "S'applique à".

Plus d'informations

Automation met en cache de l'espace alloué pour BSTR. Cela accélère la séquence de l'aide de SysAllocString/SysFreeString. Toutefois, cela peut entraîner IMallocSpy pour attribut fuites à l'utilisateur de mémoire incorrecte, car il n'est pas conscient de la mise en cache Automation effectue. Par exemple, si l'application alloue un BSTR, il libère le bloc de mémoire libéré est placé dans le cache BSTR par Automation. Si l'application puis alloue une autre BSTR, il peut s'afficher le bloc libre à partir du cache. Si l'allocation de BSTR deuxième n'est pas libérée, IMallocSpy attribut la fuite de mémoire pour la première allocation du BSTR. La source de fuite correcte (la deuxième allocation) peut être déterminée en désactivant la mise en cache de la BSTR, effectue d'Automation. Cela par définition de variable d'environnement OANOCACHE = 1 avant d'exécuter l'application. Sur Windows 2000, la version de correctif logiciel du fichier oleaut32.dll référencés dans cet article est nécessaire. Il est également important rechercher des fuites à l'heure correcte pour empêcher les rapports de fuite de false. Ces fuites peuvent se produire lorsque l'implémentation IMallocSpy vérifie les fuites trop tôt. Les utilisateurs de la mémoire allouée par IMalloc peuvent légitimement contenir vers elle après OleInitialize. Par exemple, le cache Automation BSTR est supprimé au moment de DLL_PROCESS_DETACH du fichier Oleaut32.dll. Cela signifie que cette vérification des fuites immédiatement après que OleUninitialize risque de faux rapports des fuites de mémoire. Un bon emplacement pour rechercher des fuites de mémoire est dans le destructeur d'une instance statique d'une classe qui implémente IMallocSpy. Le destructeur de cette instance statique est appelé après que la fonction DllMain de chaque DLL lié par l'application est appelé avec DLL_PROCESS_DETACH.

Définir la variable d'environnement OANOCACHE

  1. Dans le Panneau de configuration, double-cliquez sur l'icône système. La boîte de dialogue Propriétés système s'affiche.
  2. Sous l'onglet Avancé, cliquez sur Variables d'environnement. La boîte de dialogue Variables d'environnement s'affiche.
  3. Sous variables système, cliquez sur Nouveau. La boîte de dialogue Nouvelle Variable système s'affiche.
  4. Type OANOCACHE dans la zone Nom de la variable.
  5. Tapez 1 dans la zone Valeur de la variable.
  6. Cliquez sur OK trois fois.
Avant de modifier la variable d'environnement OANOCACHE, vous devez arrêter les processus de serveur suivants s'ils sont en cours d'exécution :
  • Le processus Inetinfo
  • Le processus Dllhost
  • Le processus W3wp
  • Le processus de Aspnet_wp
Remarque Si vous n'êtes pas sûr que ces processus de serveur sont en cours d'exécution, définir la variable d'environnement OANOCACHE = 1, puis redémarrez l'ordinateur.

Références

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
824684  (http://support.microsoft.com/kb/824684/ ) Description de la terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows 2000 Professionnel
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
Mots-clés : 
kbmt kbautohotfix kbhotfixserver kbqfe kbexpertiseadvanced kbfix kbpubtypekc kbautomation KB139071 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 139071  (http://support.microsoft.com/kb/139071/en-us/ )
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.
 

Traductions disponibles