文書番号: 259837 - 最終更新日: 2005年9月28日 - リビジョン: 7.1

Windows NT 4.0 または Windows 2000 が実行されているコンピュータ上でサイズの大きなファイルをコピーできない

この記事は、以前は次の ID で公開されていました: JP259837
すべて展開する | すべて折りたたむ

現象

サイズの大きいファイルをコピーしようとするとコピー処理が正常に実行されず、次のようなエラー メッセージが表示されることがあります。

エクスプローラの GUI を使用してコピーまたは貼り付けを行った場合 :
<filename> をコピーできません。システム リソースが不足しているため、要求されたサービスを完了できません。
コマンド プロンプトから COPY または XCOPY を実行した場合 :
システム リソースが不足しているため、要求されたサービスを完了できません。
または

FTP コマンドを使用してファイルを送信するときに、送信先の FTP サーバーに 0 バイトのファイルが作成され、次のような紛らわしいメッセージが表示されます。

ftp> send
Local file f:\bigfile.bin
Remote file bigfile.bin
200 PORT command successful.
150 Opening BINARY mode data connection for bigfile.bin.
> f:\bigfile.bin:Invalid argument
226 Transfer complete.
: この資料では、コピー元からコピー先へのファイル コピー処理が正常に開始された後に発生する問題については説明していません。

原因

Windows NT 4.0 および Windows 2000 に含まれているコピー ユーティリティで使用されるすべての関数では、バッファ I/O (input/output) を使用してコピー元ファイルからコピー先ファイルにデータが転送されます。このことが原因で、この問題が発生する可能性があります。バッファ I/O による入出力をファイルに対して行う場合、ファイル サイズに比例してページ プール メモリのオーバーヘッド要件が決まります。ページ プール メモリは有限のリソースであるため、コピー可能なファイル サイズには上限があります。

ファイル全体をバッファに読み込むのに必要なページ プールは、最初のデータ読み込みまたは書き込みが行われるときに割り当てられるため、ファイルのコピー操作は処理の途中ではなく、直ちに中止されます。

解決方法

この問題を解決するには、Windows 2000 の最新の Service Pack を入手します。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
260910? (http://support.microsoft.com/kb/260910/ ) 最新の Windows 2000 Service Pack の入手方法

回避策

この問題を回避するには、サイズの大きいファイルをコピーする場合または移動する場合には、バックアップまたは復元ツールを使用します。これらのツールでは、標準のコピー ユーティリティとは異なる関数を使用してデータの読み込みや書き込みを行うため、大きなファイルをコピーしても問題は発生しません。

状況

マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。 この問題は、Windows 2000 Service Pack 2 で最初に修正されました。

ソフトウェア更新プログラム 280790 (この資料に記載されている問題にも対応しています) は Windows 2000 Service Pack 2 (SP2) に組み込まれています。

: 必要な変更の範囲が広く、複雑であるため、Windows NT 4.0 におけるこの問題の修正は、修正プログラムとしても、Service Pack の一部としてもリリースする予定はありません。

詳細

CopyFileEx 関数と CopyFile 関数は、Windows NT 4.0 および Windows 2000 に組み込まれているすべての標準ファイル コピー ユーティリティで使用されます。この関数を使用するユーティリティには COPY、XCOPY、Explorer が含まれます。リソース キット ユーティリティの Robocopy.exe でも CopyFileEx 関数が使用されます。このため、これらのすべてのツールに同様の制限があります。

これらの関数ではバッファ I/O が使用されるため、コピーできるファイル サイズの上限は、コピー開始時点で利用可能なページ プール メモリの量と、4 GB を超えるメモリにアクセス可能な PAE (Physical Address Extensions) カーネルが使用されているかどうかによって決まります。

標準のカーネルでは、バッファ I/O によって開かれるファイルのサイズ 1 MB につき、ページ プール 1 KB が必要です。ファイルのコピーには 2 つのファイルが関係するため、コピー元のファイルのサイズ 1 MB に対して 2 KB のページ プールが必要となります。また PAE カーネルが使用されている場合、オーバーヘッドが 2 倍になるため、コピー元のファイル サイズ 1 MB につき 4 KB のページ プールが必要です。

この制限を解消するための修正プログラムは、Windows 2000 Service Pack 2 (SP2) に収録されています。修正プログラムでは、ファイルがバッファ I/O に開かれた際のページ プール メモリの管理に関して、カーネル メモリ マネージャに変更が加えられています。この変更により、任意の大きさのファイルに対してもバッファ コピー処理が可能となったため、CopyFileEx 関数を使用するすべてのユーティリティで任意のサイズのファイルをコピーできるようになりました。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 259837? (http://support.microsoft.com/kb/259837/EN-US/ ) (最終更新日 2004-07-13) を基に作成したものです。

この資料は以下の製品について記述したものです。
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional
  • Microsoft Windows NT Server 4.0 Terminal Server
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 4.0 Enterprise Edition
キーワード:?
kbfile kbpending kbprb kbqfe KB259837
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
 

サポート技術情報の翻訳

 

Related Support Centers