Numéro d'article: 139071 - Dernière mise à jour: mercredi 26 juillet 2006 - Version: 5.4 CORRECTIF : la mise en cache OLE Automation BSTR entraîne mémoire sources fuite dans Windows 2000
RésuméCet article décrit suivants concernant cette version de correctif logiciel :
Symptômes Automation (précédemment appelé OLE Automation et ActiveX Automation) met en cache 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. La source correcte de la fuite accessibles en désactivant cache d'automation en définissant la variable d'environnement OANOCACHE = 1 avant d'exécuter l'application. Dans de nombreuses applications basées sur le serveur, le cache BSTR n'est pas nécessaire. Il est disponible pour la désactiver BSTR la mise en cache sur les ordinateurs Windows 2000. Windows XP et Windows Server 2003 ne nécessitent pas le correctif pour désactiver la mise en cache BSTR. Résolution Un correctif est disponible auprès de Microsoft. Toutefois, ce correctif est conçu 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 le téléchargement, il est une section « téléchargement correctif disponible » en haut de cet article de la base de connaissances. Si cette section n'apparaît pas, soumettez une demande à Microsoft client service et support pour obtenir le correctif. note Si des problèmes supplémentaires se produisent ou si n'importe quel dépannage est nécessaire, 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 non traités par ce correctif spécifique. Pour une liste complète des Microsoft client service et support numéros de téléphone ou pour créer une demande de service distincte, reportez-vous au site de Web Microsoft suivant : http://support.microsoft.com/contactus/?ws=support
(http://support.microsoft.com/contactus/?ws=support)
note L'écran de « téléchargement correctif disponible » affiche les langues pour lesquelles le correctif est disponible. Si vous ne voyez pas la langue, il est car un correctif logiciel n'est pas disponible pour cette langue.Conditions préalablesVous devez avoir installé Windows 2000 Service Pack 4 (SP4) pour appliquer ce correctif.Redémarrez les informationsVous devez redémarrer l'ordinateur après avoir appliqué ce correctif.Informations de RegistreVous devez modifier le Registre.Informations sur le fichier de correctifCe correctif contient uniquement les fichiers nécessaires à la résolution des problèmes décrits dans cet article. Ce correctif peut ne pas contenir de tous les fichiers nécessaires à la mise à jour complètement un produit vers la dernière version. La version anglaise de ce correctif dispose 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 exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, il est convertie 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 du Panneau de configuration.Réduire ce tableau
StatutMicrosoft a confirmé que c'est un problème dans les produits Microsoft répertoriés dans la section « S'applique à ». Plus d'informationsAutomatisation met en cache l'espace alloué pour BSTRs. Cela accélère la séquence SysAllocString/SysFreeString. Toutefois, cela peut entraîner IMallocSpy fuites d'attribut à l'utilisateur de mémoire incorrecte, car il n'est pas conscient de la mise en cache qui effectue Automation. Par exemple, si l'application affecte un type BSTR et qu'il libère, le bloc de mémoire libéré est placé dans le cache BSTR via Automation. Si l'application alloue un autre type BSTR, il peut s'afficher le bloc disponible à partir du cache. Si l'allocation BSTR deuxième n'est pas libérée, IMallocSpy attribut la fuite de la première allocation du BSTR. La source de fuite correcte (la deuxième allocation) peut être déterminée en désactivant le cache BSTR effectue Automation. Cela par variable d'environnement paramètre OANOCACHE = 1 avant d'exécuter l'application. Dans Windows 2000, la version de correctif d'OLEAUT32.DLL référencés dans cet article est obligatoire. Il est également important rechercher des fuites de l'heure correcte pour empêcher la fuite de faux rapports. Ces fuites peuvent se produire lorsque l'implémentation IMallocSpy vérifie de fuites trop tôt. Les utilisateurs de mémoire allouée par IMalloc peuvent légitimement contenir sur lui après OleUninitialize. Par exemple, le cache BSTR Automation est supprimé à DLL_PROCESS_DETACH moment le fichier Oleaut32.dll. Cela signifie que recherche de fuites immédiatement après que OleUninitialize peut entraîner de fausses rapports de fuites de mémoire. Un emplacement idéal 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ée par l'application est appelée avec DLL_PROCESS_DETACH. Définir la variable d'environnement OANOCACHE
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):
Traduction automatiqueIMPORTANT : 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
|


Retour au début
