Certaines constructions IDL sont nombreuses et démarshalées incorrectement par RPC

Traductions disponibles Traductions disponibles
Numéro d'article: 824835 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
important Cet article contient des informations sur la modification du Registre. Veillez à sauvegarder le Registre avant de le modifier. Vérifiez que vous connaissez comment restaurer le Registre si un problème se produit. Pour plus d'informations sur la façon sauvegarder, restaurer et modifier le Registre, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
256986 Description du Registre Microsoft Windows
Agrandir tout | Réduire tout

Sommaire

Symptômes

Les programmes qui utilisent des appels de procédure distante (RPC) pour communiquer avec d'autres ordinateurs Windows Microsoft sur un réseau peuvent échouer. Par exemple, lorsque vous utilisez un programme Microsoft Visual Basic personnalisé entre deux ordinateurs distants, et Visual Basic programme utilise type l'utilisateur défini marshaling, vous pouvez rechercher constructions de langage de définition certains interface (IDL) sont incorrectement recueillis et démarshalées. Par exemple, vous pouvez rencontrer l'un des symptômes suivants :
  • L'appel distant échoue, et un code d'erreur RPC_X_BAD_STUB_DATA est retourné par le programme Visual Basic.
  • Données incorrectes sont démarshalées.

Cause

Ce problème peut se produire si le composant RPC regroupe ou unmarshals certaines constructions IDL incorrecte. Versions de Windows qui peuvent mal marshaling et unmarshal constructions IDL sont les suivants :
  • Microsoft Windows XP (version d'origine) et Windows XP met à jour des installations de Service Pack 1 (SP1) qui incluent la sécurité MS03-039. Cette mise à jour est documentée dans l'article suivant de la base de connaissances Microsoft :
    824146 MS03-039 : une débordement de tampon dans interface RPC pourrait permettre à un attaquant d'exécuter des programmes malveillants
  • Microsoft Windows 2000
  • Microsoft Windows NT 4.0
  • Microsoft Windows 98
Ce problème peut se produire dans un programme Visual Basic si les deux conditions suivantes sont remplies :
  • Le fichier IDL utilise une structure qui contient un champ de 8 octets qui utilise l'un des types suivants :
    DATE
    Double
    CY
    VARIANT
    DECIMAL
    INT64/UINT64
  • Le champ de 8 octets est un champ non premier, et il est un champ qui est de 4 octets ou de réduire avant le champ 8 octets contenues dans la même structure.
Par exemple, ce problème peut se produire si le fichier IDL utilise une structure semblable à celui-ci :
Public Type myType

member1 As Long

member2 As Double

End Type

Résolution

Informations sur le correctif Windows Server 2003

Pour communiquer avec les versions de Windows incorrecte marshaling et unmarshal constructions IDL, procédez comme suit :
  1. Effectuez l'une des opérations suivantes :
    • Installez les derniers service pack pour Windows Server 2003 . Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
      889100 Comment obtenir le dernier pack service pour Windows Server 2003
    • J'AI nstall la mise à jour sécurité qui est décrite dans le bulletin de sécurité MS05-051. Pour plus d'informations sur le bulletin de sécurité MS05-051, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
      902400 MS05-051 : des vulnérabilités de MS DTC et COM + peuvent permettre l'exécution de code à distance
  2. Ajoutez l'entrée de Registre UDTAlignmentPolicy. Pour ce faire, procédez comme suit :

    Avertissement Des problèmes graves peuvent se produire si modification incorrecte du Registre à l'aide de l'Éditeur du Registre ou en utilisant une autre méthode. Ces problèmes peuvent obliger à réinstaller votre système d'exploitation. Microsoft ne peut pas garantir que ces problèmes peuvent être résolus. Modifier le Registre à vos risques et périls.
    1. Cliquez sur Démarrer , cliquez sur Exécuter , dans la zone Ouvrir , tapez regedit et cliquez sur OK .
    2. Recherchez la sous-clé de Registre suivante :
      HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
    3. Dans le menu Edition , pointez sur Nouveau , puis cliquez sur valeur DWORD .
    4. Tapez UDTAlignmentPolicy et puis appuyez sur ENTRÉE.
    5. Double-cliquez sur UDTAlignmentPolicy , puis tapez une valeur pour déterminer le format de données que RPC utilise basé sur les informations suivantes :

      Si la valeur UDTAlignmentPolicy est définie sur 0, RPC marshaling en utilisant le format des données incorrectes « old ». RPC communique avec les versions de Windows incorrecte marshaling et unmarshal constructions IDL. Par exemple, RPC communique avec Windows 2000 ou mettre à jour des installations de Windows XP Service Pack 1 qui incluent la MS03-039.

      Si la valeur UDTAlignmentPolicy est définie sur 0, RPC peut communiquer avec les ordinateurs Windows 2000.

      Si la valeur UDTAlignmentPolicy est définie sur 1, RPC marshaling en utilisant le « nouveau format de câble approprié. RPC communique avec les versions de Windows marshaler correctement et unmarshal constructions IDL. Par exemple, RPC communique avec Windows Server 2003 ou mettre à jour des installations Windows XP qui incluent la MS03-026.

      Si l'entrée UDTAlignmentPolicy n'existe pas, l'appel distant échoue et RPC renvoie un code d'erreur RPC_X_BAD_STUB_DATA lorsque RPC essaie marshaling ou unmarshal affectés types.

      important Lorsque la valeur UDTAlignmentPolicy est définie sur 0, votre ordinateur Windows Server 2003 peut échanger des données de la construction IDL avec les versions de Windows incorrecte marshaling et unmarshal constructions IDL. Toutefois, la construction IDL est démarshalée au format incorrect. À l'aide incorrect regroupement et unmarshaling le code peut empêcher l'interopérabilité de cette même construction IDL et autre IDL construites lorsque programmes communiquer avec les ordinateurs qui exécutent des versions de Windows qui correctement marshaling et unmarshal constructions IDL.

Service pack informations pour Windows XP

Pour résoudre ce problème, procurez-vous le dernier service pack pour Windows XP. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
322389 Comment obtenir le dernier pack de service Windows XP
Dans Windows XP Service Pack 2, vous pouvez modifier l'entrée de Registre UDTAlignmentPolicy pour ajuster la manière dont RPC communique avec différentes versions de Windows. Pour ce faire, suivez la section étape 3 dans les « informations pour Windows Server 2003 correctif ».

Informations sur le correctif Windows XP

Pour communiquer avec les versions de Windows incorrecte marshaling et unmarshal constructions IDL, telles que la mise à jour des installations de Windows 2000 ou Windows XP SP1 qui incluent la MS03-039, installer la mise à jour MS03-039 sur vos ordinateurs Windows XP SP1. Pour plus d'informations sur la MS03-039 mettre à jour, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft. :
824146 MS03-039 : une débordement de tampon dans interface RPC pourrait permettre à un attaquant d'exécuter des programmes malveillants
Un correctif logiciel pris en charge n'est pas actuellement disponible pour les ordinateurs Windows XP qui communiquent en utilisant RPC avec les versions de Windows marshaler correctement et unmarshal constructions IDL. Ces versions sont Windows Server 2003 et mettre à jour des installations Windows XP qui incluent la MS03-026.

Statut

Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés dans la section « S'applique à ». Ce problème a été corrigé dans Microsoft Windows XP Service Pack 2.

Plus d'informations

Versions de Windows qui marshaler correctement et unmarshal la construction IDL qui est mentionnée dans la section « Cause » sont les suivants :
  • Microsoft Windows Server 2003 et versions ultérieures
  • Installations de Windows XP Service Pack 1 (SP1) qui incluent la MS03-026 mettre à jour mais n'incluent pas la mise à jour de sécurité MS03-039. La mise à jour MS03-026 est documenté dans l'article suivant de la base de connaissances Microsoft :
    823980 MS03-026 : tampon débordement dans l'interface RPC peut permettre l'exécution de code
  • Microsoft Windows XP Service Pack 2 (SP2)
note Un correctif logiciel pris en charge n'est pas actuellement disponible pour les ordinateurs Windows 2000 qui communiquent en utilisant RPC avec les versions de Windows marshaler correctement et unmarshal constructions IDL. Ces versions sont Windows Server 2003 et mettre à jour des installations Windows XP qui incluent la MS03-026.

Propriétés

Numéro d'article: 824835 - Dernière mise à jour: jeudi 27 février 2014 - Version: 13.6
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows XP Professional 64-Bit Edition (Itanium) 2003
  • Microsoft Windows XP Professional 64-Bit Edition (Itanium)
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Édition familiale
  • Microsoft Windows XP Tablet PC Edition
  • Microsoft Windows XP Media Center Edition
Mots-clés : 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbtshoot kbwinxpsp2fix kbwinxppresp2fix kbfix kbbug KB824835 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: 824835
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