Windows NT 4.0 で4 GB より大きなファイルで I/O が間違ったオフセットで実行される

この記事は、以前は次の ID で公開されていました: JP235250
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
4 GB を超えるサイズのファイルに対する読み取りや書き込み操作 (いわゆる入出力、I/O 操作) が、そのファイル内の不正な位置で実行されることがあります。

この問題は、I/O 操作がキャッシュされ、非同期である場合に発生する可能性があります。キャッシュされない同期操作の場合は、この資料で説明される問題に影響されることはありません。

この問題は、最初の操作が 4 GB 以上にあって、2 番目の操作が同じオフセット (4GB で割った余り) の 4 GB 以下にある場合に、2 つの I/O 操作が連続して実行されるときにのみ発生する可能性があります。

たとえば、最初の操作がオフセット 4,295,032,832 (0x100010000 16 進数) で実行され、2 番目の操作がオフセット 65,536 (0x10000 16 進数) で実行されると、2 番目の I/O 操作が、実際には最初のオフセットで発生することがあります。
原因
パフォーマンスを改善しようとする場合に、キャッシュ マネージャは、特定の検索操作を実行するときに 32 ビット操作を実行しようとします。64 ビット操作はより多くの時間を消費しますが、ファイル オフセットが 32 ビットで表すことができない大きな場合には必要になります。この資料で説明された問題は、キャッシュ マネージャでエラーが発生し、64 ビット演算が必要な場合に 32 ビット演算を実行することがあるために発生します。
解決方法

Windows NT 4.0

この問題を解決するためのモジュールは、Windows NT 4.0 日本語版サービスパック 6a 以降に含まれております。Windows NT 4.0 日本語版の最新サービスパックについては、以下 Web サイトから入手できます。

Windows NT 4.0, Terminal Server Edition

この問題を解決するためのモジュールは、Windows NT 4.0 Terminal Server Edition 日本語版サービスパック 6 以降に含まれております。Windows NT 4.0 Terminal Server Edition 日本語版の最新サービスパックについては、以下 Web サイトから入手できます。
状況
弊社では、これが Windows NT Server 4.0、Terminal Server Edition にかかわる問題であることを確認済みです。

この問題は Windows NT Server 4.0 Service Pack 6 および Windows NT Server 4.0、Terminal Server Edition Service Pack 6 で解決済みです。
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 235250 (最終更新日 2000-10-19) を基に作成したものです。

プロパティ

文書番号:235250 - 最終更新日: 02/04/2014 01:46:58 - リビジョン: 1.1

  • Microsoft Windows NT Server 4.0 Terminal Server
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • kbnosurvey kbarchive kbbug kbfix KB235250
フィードバック