私のアプリケーションは、数バイトのデータを別のデータ ストリームに書き込みます。これは、1 台のマシン (Windows Server 2003 SP2) を除くすべてのマシンで正常に機能します。ERROR_DISK_FULL
代わりに、 (ルート ディレクトリに) 別のデータ ストリームを作成しようとすると、CreateFile が返されます。この結果の理由はわかりません。なぜなら...
そのドライブには十分なスペースがあります。
ドライブは NTFS でフォーマットされています (GetVolumeInformation により)。
ドライブは代替データ ストリームをサポートします (GetVolumeInformation による)。
編集:理由が何であるかについてさらに情報を提供できます。エラーを表示しなかったテストシステムに多くのストリームを追加し、エラーが発生する可能性があるかどうか疑問に思いました。そうではありませんでした。代わりに、長いファイル名を持つ約 2000 のストリームの後、別のエラーが発生して持続しました: 1450 (ERROR_NO_SYSTEM_RESOURCES)。
編集: 使用されるファイル名の 1 つの例を次に示します。
char szStreamFileName[] = "C:\\:abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnoqrstuvwxyz012345";
編集: 当社の顧客は、このサーバーで Avira の企業向けウイルス対策ソフトウェアを使用しています。おそらくこれが理由です (代替データ ストリームはマルウェアによって悪用される可能性があります)。