ある種のアプリケーション プロセスは、実行時に大量の I/O (入出力) を生成することが知られています。 これらのプロセスは VSE のスキャン動作とも競合します。 そのようなプログラムの一般的な例としては、バックアップ アプリケーションや暗号化ソフトウェアがあります。社内またはサードパーティ ソフトウェア ベンダーで開発されたカスタム アプリケーションについても同様です。
問題が発生するのは、アプリケーションが非常に大量の I/O を実行する場合です。通常、ミリ秒単位のファイルの読み取り/書き込みイベントやレジストリ クエリーが非常に大量になる場合です。 I/O が VSE によって処理されているときに、サードパーティ ソフトウェアやカスタム アプリケーションでパフォーマンスの問題やエラーが発生することがあります。 この問題は、以下のようなさまざまなシナリオで発生します。
- サードパーティ ソフトウェアが、VSE がスキャンしている I/O にアクセスしようとする (またはその逆の場合)。
例: バックアップ アプリケーションが、場所 A から場所 B にデータをコピーする場合。 この場合、VSE はバックアップ アプリケーションの読み取り対象のファイルをスキャン (読み取り時スキャン) すると同時に、書き込み/変更対象のファイルをスキャン (書き込み時スキャン) します。 アプリケーションによっては、他のアプリケーションのアクセスを防止する際に共有違反を起こし、これが別の症状を引き起こす場合があります。
- サードパーティ ソフトウェアは、操作を実行するために、毎秒数千回ものレジストリやファイルのイベントを発生します。このような場合、VSE はイベントあたり 1 ミリ秒程度のオーバーヘッドを追加して各イベントを処理します。 イベントの処理は高速ですが、何千もの処理が連続すると、ユーザーに影響が及びます。 これは、VSE の処理に時間がかかっているわけではなく、アプリケーションが 1 秒あたりに非常に多くの要求を行うためです。
- サードパーティ ソフトウェアは、タイムアウトや遅延に対する許容度が高くありません。つまり、サードパーティ ソフトウェアではアクションが一定の時間内に完了することを前提としているため、時間に大きく左右されます。アクションが一定の時間内に完了しない場合、アプリケーションは予期しない動作を示すことがあります。 このような問題は、ウイルス対策ソフトウェアやその他のフィルタリング ソフトウェアとともにソフトウェアのストレス テストが十分に行われていない場合や、完了していることが前提とされている非同期操作に強く依存している場合に発生します。
- システムのハードウェア仕様、オペレーティングシステム、およびインストールしているプログラムが、I/O のオーバーヘッドを増加させる場合もあります。 Microsoft Process Monitor は、サードパーティ ソフトウェアや VSE によって生成される I/O 量の調査/解析に役立ちます (KB72766 を参照してください)。 多くの場合、このような問題を発生させる根本要因は、必要なファイル/フォルダーまたは危険度低のプロセスの除外を追加することで解決できます。