Filtro do DirectShow não conectar-se ao filtro de downstream no Windows 8 e Windows 7 SP1 com 2670838 KB

Traduções deste artigo Traduções deste artigo
ID do artigo: 2841589 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Você está usando um filtro do DirectShow não conectar-se a um filtro downstream no Windows 8 e Windows 7 SP1 depois de instalar o KB 2670838.  Antes de instalar o KB 2670838 esse problema não ocorria no Windows 7 SP1.
  • Ao chamar oCBasePin.ReceiveConnection o valor retornado da função é VFW_E_INVALIDMEDIATYPE (0x80040200)

Causa

Novas verificações para tipos de mídia de vídeo foram adicionadas a classe base do DirectShow no Windows 8.  Essas verificações podem rejeitar os tipos de mídia incorreto ou desconhecido. Essas verificações são adicionadas para proteger os sistemas contra estouros de buffer e explorações de saturações de buffer.

KB 2670838 para o Windows 7 SP1 atualiza o subsistema do DirectShow com as mesmas alterações.

Resolução

Estas são recomendações que podem ajudar a garantir que seu código passa novas verificações de segurança:

  • Verifique se AM_MEDIA_TYPE estrutura de valores inválidos. Essa estrutura descreve o formato de uma amostra de mídia.
  • Ao chamar CMediaType.AllocFormatBuffer para alocar memória para o bloco de formato, certificar-se de que você está passando o tamanho correto necessário para o bloco de formato.

    Observação: esse método atualiza o cbFormat e pbFormat os membros do AM_MEDIA_TYPE estrutura.
  • Verifique se a estrutura BITMAPINFOHEADER valores inválidos
    • Certifique-se de biSize é igual a sizeof(BITMAPINFOHEADER)
    • Verifique se biSizeImage valor incorreto (ou seja, > 0x40000000)
    • Verifique se biClrUsed valor incorreto (ou seja, > 256)

Mais Informações

Passos para reproduzir o problema usando o GraphEdit:

GraphEdit está disponível no (Microsoft Windows Software Development Kit (SDK)http://go.microsoft.com/fwlink/p/?LinkId=62332).

Etapa 1. Vá para a pasta Bin do SDK do Windows e execute o graphedt.exe.

Etapa 2. No menu gráfico , clique em Inserir filtros. Uma caixa de diálogo é exibida com uma lista de filtros em seu sistema, organizados por categoria de filtro.

Etapa 3. Localize o filtro sob a categoria apropriada (normalmente localizado na categoria de Filtros DirectShow ) e clique no botão Inserir filtro . Se o filtro não é um filtro de origem, certifique-se você adicionou o filtro de origem necessários para ele.

Etapa 4. Inserir o campo obrigatório downstream.

Etapa 5. Após você ter adicionado os filtros, você pode conectar dois filtros arrastando o mouse do pino de saída do filtro ao pino de entrada do outro filtro. Se os pinos de aceitam a conexão, o GraphEdit desenha uma seta conectá-los. Tente fazer isso para o filtro com o filtro de downstream. Você verá-
  • Pino de entrada e o pino de saída irá se conectar sem erros no Windows 7 SP1.
  • GraphEdit mostrará a mensagem de erro no Windows 8 e Windows 7 SP1 com 2670838 KB instalado.
Termos usados neste artigo:

Estouro de buffer:

Um estouro de buffer ocorre quando tentamos colocar mais dados em um buffer que foi alocada. Um estouro de buffer pode ser usado para executar código mal-intencionado em um sistema.

Saturações de buffer:

Saturação de buffer A essencialmente é causada por tratamento de entrada não verificada, externa como dados confiáveis. O ato de copiar esses dados, usando operações como CopyMemory, strcat, strcpy ou wcscpy, pode criar resultados imprevistos, que permite a corrupção do sistema.

Links relacionados:

Método CBasePin.ReceiveConnection

. aspx de http://msdn.microsoft.com/en-us/library/Windows/Desktop/dd368737 (v=vs.85)

Classe CMediaType
. aspx de http://msdn.microsoft.com/en-us/library/Windows/Desktop/dd374727 (v=vs.85)

Método CMediaType.AllocFormatBuffer
. aspx de http://msdn.microsoft.com/en-us/library/Windows/Desktop/dd374728 (v=vs.85)

Estrutura AM_MEDIA_TYPE
. aspx de http://msdn.microsoft.com/en-us/library/Windows/Desktop/dd373477 (v=vs.85)

Estrutura BITMAPINFOHEADER
. aspx de http://msdn.microsoft.com/en-us/library/Windows/Desktop/dd183376 (v=vs.85)

Usando o GraphEdit
. aspx de http://msdn.microsoft.com/en-us/library/Windows/Desktop/dd407274 (v=vs.85)

Propriedades

ID do artigo: 2841589 - Última revisão: quarta-feira, 24 de abril de 2013 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Windows 8
  • Windows 8 Enterprise
  • Windows 8 Pro
  • Windows 7 Enterprise
  • Windows 7 Ultimate
  • Windows 7 Professional
  • Windows 7 Home Premium
  • Windows 7 Home Basic
  • Windows 7 Service Pack 1
Palavras-chave: 
kbmt KB2841589 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 2841589

Submeter comentários

 

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