Determinados construções IDL são empacotar e unmarshaled incorrectamente por RPC

Traduções de Artigos Traduções de Artigos
Artigo: 824835 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
importante Este artigo contém informações sobre como modificar o registo. Certifique-se de que cópia de segurança do registo antes de o modificar. Certifique-se que sabe como restaurar o registo se ocorrer um problema. Para obter mais informações sobre como efectuar uma cópia de segurança, restaurar e modificar o registo, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
256986Descrição do registo do Microsoft Windows
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Programas que utilizam chamadas de procedimento remoto (RPC, Remote Procedure Call) para comunicar com outros computadores baseados no Windows no Microsoft através de uma rede poderão falhar. Por exemplo, quando utiliza um programa do Microsoft Visual Basic personalizado entre dois computadores remotos e o Visual Basic programa utiliza definidos pelo utilizador tipo de empacotamento de referências, pode localizar determinadas IDL (interface de definição de idioma) constrói são incorrectamente empacotar e unmarshaled. Por exemplo, poderá detectar um dos seguintes sintomas:
  • A chamada remota falha e um código de erro RPC_X_BAD_STUB_DATA é devolvido pelo programa do Visual Basic.
  • Dados incorrectos são unmarshaled.

Causa

Este problema poderá ocorrer se o componente RPC incorrectamente marshals ou unmarshals determinadas construções IDL. Versões do Windows que incorrectamente pode organizar e desempacotar IDL construções incluem o seguinte:
  • Microsoft Windows XP (versão original) e Windows XP actualizar instalações de Service Pack 1 (SP1) incluem a segurança MS03-039. Esta actualização é documentada no seguinte artigo da base de dados de conhecimento da Microsoft:
    824146MS03-039: Uma sobrecarga da memória intermédia no RPCSS pode permitir um atacante execute programas maliciosos
  • Microsoft Windows 2000
  • Microsoft Windows NT 4.0
  • Microsoft Windows 98
Este problema poderá ocorrer num programa do Visual Basic se ambas as condições seguintes forem verdadeiras:
  • O ficheiro IDL utiliza uma estrutura que contém um campo de 8 bytes que utilize qualquer um dos seguintes tipos:
    DATA
    Duplo
    CY
    VARIANTE
    DECIMAL
    INT64/UINT64
  • O campo de 8 bytes é um campo não primeiro e existe um campo é de 4 bytes ou mais pequeno antes do campo 8 bytes contida na mesma estrutura.
Por exemplo, este problema poderá ocorrer se o ficheiro IDL utiliza uma estrutura semelhante à seguinte:
Public Type myType

member1 As Long

member2 As Double

End Type

Resolução

Informações de correcções para o Windows Server 2003

Para comunicar com versões do Windows que incorrectamente é empacotar referências de desempacotar IDL construções, siga estes passos:
  1. Efectue um dos seguintes procedimentos:
    • Instalar o mais recente service pack para Windows Server 2003 . Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
      889100Como obter o service pack mais recente do Windows Server 2003
    • I nstalar a actualização de segurança descrita no boletim de segurança MS05-051.Para obter mais informações sobre o boletim de segurança MS05-051 da Microsoft, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
      902400MS05-051: Vulnerabilidades no DTC e no COM + da MS podem permitir execução remota de código
  2. Adicione a entrada de registo UDTAlignmentPolicy. Para o fazer, siga estes passos:

    aviso Podem ocorrer problemas graves se modificar o registo incorrectamente utilizando o Editor de registo ou utilizando outro método. Estes problemas poderão forçar a reinstalação do sistema operativo. Microsoft não garante que estes problemas podem ser resolvidos. Modificar o registo por sua conta e risco.
    1. Clique em Iniciar , clique em Executar , na caixa Abrir , escreva regedit e, em seguida, clique em OK .
    2. Localize a seguinte subchave do registo:
      HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
    3. No menu Editar , aponte para Novo e, em seguida, clique em valor DWORD .
    4. Escreva UDTAlignmentPolicy e, em seguida, prima ENTER.
    5. Faça duplo clique UDTAlignmentPolicy e, em seguida, escreva um valor para determinar o formato de dados que irá utilizar RPC com base nas seguintes informações:

      Se o valor de UDTAlignmentPolicy estiver definido como 0, RPC é empacotar referências utilizando o "antiga" formato de dados incorrectos. RPC irá comunicar com versões do Windows que incorrectamente é empacotar referências de desempacotar IDL construções. Por exemplo, RPC irá comunicar com o Windows 2000 ou actualizar instalações do Windows XP SP1 que incluem o MS03-039.

      Se o valor de UDTAlignmentPolicy estiver definido como 0, RPC pode comunicar com computadores baseados no Windows 2000.

      Se o valor de UDTAlignmentPolicy estiver definido como 1, RPC é empacotar referências utilizando o formato correcto cabos "novo". RPC irá comunicar com versões do Windows que correctamente é empacotar referências de desempacotar IDL construções. Por exemplo, RPC irá comunicar com o Windows Server 2003 ou actualizar instalações do Windows XP que incluem o MS03-026.

      Se a entrada UDTAlignmentPolicy não existe, a chamada remota falhará e RPC irá devolver um código de erro RPC_X_BAD_STUB_DATA quando RPC tenta organizar ou desempacotar afectado tipos.

      importante Quando o valor UDTAlignmentPolicy é definido como 0, o computador baseado no Windows Server 2003 pode trocar dados para a construção IDL com versões do Windows que incorrectamente é empacotar referências de desempacotar IDL construções. No entanto, a construção IDL é unmarshaled para o formato incorrecto. Utilizar incorrecto empacotamento de referências e unmarshaling código poderá impedir que a interoperabilidade deste mesma construção IDL e outro IDL constrói quando programas comunicam com computadores que executam versões do Windows que correctamente organizar e desempacotar IDL construções.

Informações sobre o Service pack para o Windows XP

Para resolver este problema, obtenha o service pack mais recente do Windows XP. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
322389Como obter o Windows XP service pack mais recente
No Windows XP Service Pack 2, pode modificar a entrada de registo UDTAlignmentPolicy para ajustar a forma de que RPC comunica com diferentes versões do Windows. Para o fazer, siga a secção passo 3 do "hotfix informações para o Windows Server 2003".

Informações sobre a correcção para o Windows XP

Para comunicar com versões do Windows que incorrectamente é empacotar referências de desempacotar IDL construções, tais como actualizar instalações do Windows 2000 ou Windows XP SP1 que incluem o MS03-039, instale a actualização MS03-039 nas computadores baseados no Windows XP SP1. Para obter mais informações sobre o MS03-039 actualizar, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
824146MS03-039: Uma sobrecarga da memória intermédia no RPCSS pode permitir um atacante execute programas maliciosos
Uma correcção suportada não está actualmente disponível para computadores baseados no Windows XP que comunicam utilizando RPC com versões do Windows que correctamente é empacotar referências de desempacotar IDL construções. Estas versões são o Windows Server 2003 e actualização de instalações do Windows XP que incluem o MS03-026.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a". Este problema foi corrigido pela primeira vez no Microsoft Windows XP Service Pack 2.

Mais Informação

Versões do Windows que correctamente é empacotar referências de desempacotar a construção IDL mencionada na secção "Causa" incluem o seguinte:
  • Microsoft Windows Server 2003 e versões posteriores
  • Instalações de Microsoft Windows XP Service Pack 1 (SP1) incluem o MS03-026 actualizar mas não incluem a actualização de segurança MS03-039. A actualização MS03-026 é documentada no seguinte artigo da base de dados de conhecimento da Microsoft:
    823980MS03-026: Uma sobrecarga na interface RPC memória intermédia pode permitir a execução de código
  • Microsoft Windows XP Service Pack 2 (SP2)
Nota Uma correcção suportada não está actualmente disponível para computadores baseados no Windows 2000 que comunicam utilizando RPC com versões do Windows que correctamente é empacotar referências de desempacotar IDL construções. Estas versões são o Windows Server 2003 e actualização de instalações do Windows XP que incluem o MS03-026.

Propriedades

Artigo: 824835 - Última revisão: 27 de fevereiro de 2014 - Revisão: 13.6
A informação contida neste artigo aplica-se a:
  • 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
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Standard Edition
  • 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 Edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Tablet PC Edition
  • Microsoft Windows XP Media Center Edition 2005 Update Rollup 2
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbtshoot kbwinxpsp2fix kbwinxppresp2fix kbfix kbbug KB824835 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 824835

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