CORRECTIF : Windows NT 4.0 avec SP4 provoque une corruption des données dans les appels RPC

Traductions disponibles Traductions disponibles
Numéro d'article: 216766 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Si vous disposez d'un pointeur vers une structure conforme en tant que champ d'une structure complexe sous Windows NT 4.0 avec Service Pack 4 (SP4), le côté unmarshaling obtient des données non initialisées. Si une telle structure de données est un paramètre [in], la routine de gestionnaire de serveur voit la corruption. S'il s'agit d'un paramètre [out] la corruption, le client voit la corruption.

Le même problème apparaît si votre application RPC s'exécute sur Windows 95 avec mise à jour de DCOM95 1.2 ou Windows 98 avec mise à jour DCOM98 comme indiqué dans l'article suivant dans la base de connaissances Microsoft :
FIX 216889 : DCOM95 1.2 ou DCOM98 provoque une corruption des données dans les appels RPC
Structure de données :
typedef struct tagConformantStruct 
{
   unsigned long        size;
   [size_is(size)] char data[];
} ConformantStruct;

typedef enum tagColor
{
   Red, Blue, Green
} Color;

typedef union tagMyUnion switch (Color type) u
{
   case Red :  long  longArm;
   case Blue:  short shortArm;
   case Green: char  charArm;
} MyUnion;

typedef struct tagComplexStruct
{
   unsigned long numUnions;
   ConformantStruct* pConfStruct; // PROBLEM! pointer to conformant struct.
   [size_is(numUnions)] MyUnion myUnions[]; // Makes the struct complex.
} ComplexStruct;
				

Cause

Un défaut dans la rpcrt4.dll est livré avec Windows Service Pack 4 (DCOM95 1.2) et DCOM98 empêche la partie conforme de la structure conforme à marshaler. Le côté unmarshaling s'attend à ce que la partie conforme et démarshale à partir d'une partie de la mémoire tampon RPC éventuellement non initialisée. Cela provoque une corruption de données.

Résolution

Windows NT 4.0

Pour résoudre ce problème, procurez-vous le dernier service pack pour Windows NT 4.0 ou la mise à jour logicielle individuelle. Pour plus d'informations sur l'obtention du dernier service pack, rendezvous sur :
Pour plus d'informations sur l'obtention de la mise à jour logicielle individuelle, contactez les services de support technique Microsoft. Pour obtenir une liste complète des numéros de téléphone des services de support technique Microsoft et des informations sur les coûts de support, accédez à l'adresse suivante sur le site Web :
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

Windows NT Server 4.0, Édition Terminal Server

Pour résoudre ce problème, procurez-vous le dernier service pack Windows NT Server 4.0, Édition Terminal Server. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
152734Comment faire pour obtenir le dernier Pack de Service Windows NT 4.0

Statut

Microsoft a confirmé l'existence de ce problème dans Windows NT 4.0 Service Pack 4 et Windows NT Server 4.0, Édition Terminal Server Service Pack 4. Ce problème a été le premier corrigé dans Windows NT version 4.0 Service Pack 5 et Windows NT Server 4.0, Terminal Server Edition Service Pack 5.

Propriétés

Numéro d'article: 216766 - Dernière mise à jour: dimanche 25 février 2007 - Version: 1.6
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows NT Server 4.0, Terminal Server Edition Service Pack 4
  • Microsoft Windows NT 4.0 Service Pack 4
  • Microsoft Windows NT 4.0 Service Pack 4
Mots-clés : 
kbmt kbhotfixserver kbqfe kbbug kbfix kboswinnt400sp4fix kbqfe kbrpc KB216766 KbMtfr
Traduction 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: 216766
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.

Envoyer des commentaires

 

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