現在オフラインです。再接続するためにインターネットの接続を待っています

DirectShow フィルターは、Windows 8 と Windows 7 SP1 の KB の 2670838 と下流のフィルターに接続していません。

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:2841589
現象
DirectShow フィルター下流のフィルターの Windows 8 と Windows 7 SP1 の KB の 2670838 をインストールすると接続していない使用しています。KB 2670838 をインストールする前に、この問題を Windows 7 SP1 を発生しなかった。
  • 呼び出す場合、CBasePin.ReceiveConnection 関数に返される値です。 VFW_E_INVALIDMEDIATYPE (0x80040200)

原因
DirectShow ベース クラス Windows 8 のビデオのメディア ・ タイプ用の新しいチェックが追加されました。これらのチェックが正しくないか、不明なメディアの種類を拒否します。バッファー オーバーフローからシステムを保護するためにこれらのチェックが追加され、上の弱点からバッファーのオーバーランが発生します。

Windows 7 SP1 の KB 2670838 DirectShow のサブシステムと同様の変更を更新します。
解決方法
コード、新しいセキュリティ チェックにパスしたことを確認するのに役立つ推奨事項を次に示します。

  • 確認します。 AM_MEDIA_TYPE 構造体の値が無効です。この構造体は、メディア サンプルの形式について説明します。
  • 呼び出すとき CMediaType.AllocFormatBuffer 形式ブロックにメモリを割り当てるには、適切なサイズのブロックの書式設定のために必要な成功していることを確認してください。

    注意してくださいこのメソッドを更新する。 cbFormatpbFormat メンバー、 AM_MEDIA_TYPE 構造体です。
  • BITMAPINFOHEADER 構造体に無効な値を確認します。
    • 確認してください。 biSize 等しい sizeof(BITMAPINFOHEADER)
    • 確認します。 biSizeImage 不正な値 (つまり > 0x40000000)
    • 確認します。 biClrUsed 不正な値 (すなわち > 256)
詳細
GraphEdit を使用して、問題の再現手順

GraphEdit では、Microsoft Windows ソフトウェア開発キット (SDK) (利用します。http://go.microsoft.com/fwlink/p/?linkid=62332).

ステップ 1 します。Windows SDK のBinフォルダーに移動し、 graphedt.exeを実行します。

ステップ 2 します。[グラフ] メニューの[フィルターの挿入をクリックします。ダイアログ ボックスのフィルター カテゴリ別に編成して、システムでのフィルターの一覧が表示されます。

ステップ 3 します。(通常、 DirectShow フィルター ] の下にある) に該当するカテゴリとをクリックして [フィルターフィルターの挿入] ボタンを見つけます。フィルターは、ソース フィルターからことを確認されていない場合が必要なソース フィルターを追加しました。

手順 4 します。必要なダウン ストリーム フィルターを挿入します。

ステップ 5 します。フィルターを追加した後で、1 つのフィルターの出力ピンをもう 1 つのフィルターの入力ピンをドラッグして、2 つのフィルターを接続できます。ピンの接続を受け入れる場合は、GraphEdit を結ぶ矢印を描画します。これは下流のフィルターにしてください。表示されます-
  • Windows 7 SP1 のエラーなし入力ピンと出力ピンに接続します。
  • GraphEdit の Windows 8 と Windows 7 SP1 の KB をインストール 2670838 で、エラー メッセージが表示されます。
この資料で使用される用語。

バッファーのオーバーフローします。

我々 より多くのデータを割り当て、バッファーに適合しようとすると、バッファーのオーバーフローが発生します。悪意のあるコードがシステム上で実行するのには、バッファー オーバーフローを使用できます。

バッファー オーバーラン:

A のバッファーのオーバーランは本質的に信頼できるデータとチェックされていない、外部入力を扱うことによって発生します。CopyMemory、strcat 関数 strcpy や wcscpy などの操作を使用して、このデータをコピーすること, は、システムの破損をことができます予想外の結果を作成できます

関連リンク:

CBasePin.ReceiveConnection メソッド

.aspx の http://msdn.microsoft.com/en-us/library/windows/desktop/dd368737 (v=vs.85)

CMediaType クラス
.aspx の http://msdn.microsoft.com/en-us/library/windows/desktop/dd374727 (v=vs.85)

CMediaType.AllocFormatBuffer メソッド
.aspx の http://msdn.microsoft.com/en-us/library/windows/desktop/dd374728 (v=vs.85)

AM_MEDIA_TYPE 構造
.aspx の http://msdn.microsoft.com/en-us/library/windows/desktop/dd373477 (v=vs.85)

BITMAPINFOHEADER 構造
.aspx の http://msdn.microsoft.com/en-us/library/windows/desktop/dd183376 (v=vs.85)

GraphEdit を使用します。
.aspx の http://msdn.microsoft.com/en-us/library/windows/desktop/dd407274 (v=vs.85)

DirectShow、KB の 2670838、ReceiveConnection、 VFW_E_INVALIDMEDIATYPE 0x80040200、AllocFormatBuffer、BITMAPINFOHEADER

警告: この記事は自動翻訳されています

プロパティ

文書番号:2841589 - 最終更新日: 04/24/2013 17:37:00 - リビジョン: 1.0

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

  • kbmt KB2841589 KbMtja
フィードバック