Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Filtre DirectShow ne se connecte pas au filtre en aval sur Windows 8 et Windows 7 SP1 avec 2670838 Ko

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 2841589
Symptômes
Vous utilisez un filtre DirectShow qui ne se connecte pas à un filtre en aval sur Windows 8 et Windows 7 SP1 après l'installation de 2670838 Ko.  Avant d'installer la base de connaissances 2670838 ce problème se produisait pas sur Windows 7 SP1 ;
  • Lorsque vous appelez leCBasePin.ReceiveConnection fonction de la valeur retournée est VFW_E_INVALIDMEDIATYPE (0x80040200)

Cause
Nouveaux contrôles pour les types de supports vidéo ont été ajoutées à la classe de base de DirectShow sur Windows 8.  Ces vérifications peuvent rejeter des types de média incorrect ou inconnu. Ces contrôles sont ajoutés à protéger les systèmes contre les débordements de tampon et toute exploitation des saturations de tampon.

Ko 2670838 pour Windows 7 SP1 met à jour le sous-système de DirectShow avec les mêmes modifications.
Résolution
Voici quelques recommandations qui permettent d'assurer que votre code passe les nouveaux contrôles de sécurité :

  • Vérifier AM_MEDIA_TYPE structure de valeurs non valides. Cette structure décrit le format d'un échantillon de média.
  • Lors de l'appel CMediaType.AllocFormatBuffer Pour allouer la mémoire pour le bloc de format, assurez-vous que vous passez la taille correcte requise pour le bloc de format.

    Remarque : cette méthode met à jour la cbFormat et pbFormat les membres de la AM_MEDIA_TYPE structure.
  • Vérifiez la structure BITMAPINFOHEADER de valeurs non valides
    • Assurez-vous que biSize est égal à sizeof(BITMAPINFOHEADER)
    • Vérifier biSizeImage mauvaise valeur (0 x c'est-à-dire > 40000000)
    • Vérifier biClrUsed pour une valeur incorrecte (c'est-à-dire > 256)
Plus d'informations
Procédure pour reproduire le problème à l'aide de GraphEdit :

GraphEdit est disponible dans le Kit de développement logiciel (SDK) de Microsoft Windows)http://go.Microsoft.com/fwlink/p/?LinkId=62332).

Étape 1. Accédez au dossier Bin du SDK Windows et exécutez graphedt.exe.

Étape 2. Dans le menu graphique , cliquez sur Insérer des filtres. Une boîte de dialogue s'affiche avec une liste de filtres sur votre système, organisés par catégorie de filtre.

Étape 3. Trouver votre filtre sous la catégorie appropriée (généralement situé sous la catégorie de Filtres DirectShow ) et cliquez sur le bouton Insérer un filtre . Si votre filtre n'est pas un filtre source puis vérifiez que vous avez ajouté le filtre source requis pour lui.

Étape 4. Insérez le filtre en aval requis.

Étape 5. Après avoir ajouté les filtres, vous pouvez connecter les deux filtres en faisant glisser la souris à partir de la broche de sortie d'un filtre à la broche d'entrée d'un autre filtre. Si les broches acceptent la connexion, GraphEdit dessine une flèche reliant entre eux. Essayez ceci pour votre filtre avec le filtre en aval. Vous verrez-
  • Broche d'entrée et la broche de sortie se connectera sans erreur sur Windows 7 SP1.
  • GraphEdit affichera le message d'erreur vous sur Windows 8 et Windows 7 SP1 avec Ko 2670838 installé.
Termes utilisés dans cet article :

Buffer Overflow :

Un débordement de tampon se produit lorsque nous essayons de placer davantage de données dans un tampon qu'il a été alloué. Un débordement de tampon peut servir à exécuter du code malveillant dans un système.

Saturation du tampon :

Dépassement de mémoire tampon A est essentiellement dû à traitement entrée unchecked, externe en tant que données digne de confiance. Action de copier ces données à l'aide d'opérations CopyMemory, strcat, strcpy ou wcscpy, pouvez créer des résultats inattendus, qui donne lieu à une corruption du système.

Liens connexes :

Méthode CBasePin.ReceiveConnection

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

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

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

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

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

À l'aide de GraphEdit
http://msdn.Microsoft.com/en-us/library/Windows/Desktop/dd407274 (v=vs.85) .aspx

DirectShow, Ko 2670838, ReceiveConnection, VFW_E_INVALIDMEDIATYPE , 0x80040200, AllocFormatBuffer, BITMAPINFOHEADER

Avertissement : cet article a été traduit automatiquement

Propriétés

ID d'article : 2841589 - Dernière mise à jour : 04/24/2013 17:35:00 - Révision : 1.0

Windows 8, Windows 8 Enterprise, Windows 8 Pro, Windows 7 Entreprise, Windows 7 Édition Integrale, Windows 7 Professionnel, Windows 7 Édition Familiale Premium, Windows 7 Édition Familiale Basique, Windows 7 Service Pack 1

  • kbmt KB2841589 KbMtfr
Commentaires
(m);