什么可能的原因Windows错误ERROR_DISK_FULL(112)开NTFS备用数据流?
题
我写了一些字节的数据为替代数据流。这一工作现在只有一个机(Windows服务器2003年SP2).相反,调用的回报 ERROR_DISK_FULL
当我试图创造一个备用数据流(关于根目录)。我找不到对此的理由的结果,因为...
有足够的空间,在那个驱动器。
驱动器是usb设备(由于GetVolumeInformation).
驱动支持altenate数据 流(由于GetVolumeInformation).
编辑:我可以提供一些更多的信息,是什么原因 不 为:我加入许多流上的一个试验系统,该系统没有出现错误,并想知道如果错误可能会发生。它没有。而不是之后关于2000流长的文件名称的另一个错误的发生和持续存在:1450(ERROR_NO_SYSTEM_RESOURCES).
编辑:这里是一个例子之一,用文件的名称:
char szStreamFileName[] = "C:\\:abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnoqrstuvwxyz012345";
编辑:我们的客户使用一些公司的防病毒软件,从程序上的这个服务器。也许这就是原因(替换数据流可以被滥用恶意软件).
解决方案
后开支票在MS我知道,有一个只读标志设置的这一唯一可以设置(和复)无身份证件的窗户的功能。没有人知道谁设置这个标志和为什么,但是我把他们送图像的驱动(在我的机器从我们的客户)和所以他们想通了。我们只有一个解决办法中我们应用程序(我们使用的另一个位置,如果我们检测到这种误差)。与此同时,我们知道,我们的一些客户有这种问题。
其他提示
是否有任何压缩/备用的文件或替代数据流?
常备份,应用程序接收ERROR_DISK_FULL错误的尝试回来了压缩的文件,这使相当混乱的时候仍有几千兆字节的免费空间上的驱动。其他问题时也可能出现的复制压缩文件。目的是让读者更透彻地理解什么是真正发生时你压缩NTFS文件。
从 了解NTFS压缩
只是一个盲目的镜头,但是该权利的设定正确吗?
只是另一种可能性...
你有没有检查数量的当前运行结束的文件在您的操作系统?OS支持最大。数保留的文件处理之后,报告ERROR_DISK_FULL或ERROR_NO_SYSTEM_RESOURCES.
和第二种可能性...根目录是由有限数量的文件。我记得512文件在旧版本的操作系统。但NTFS支持无限制的文件数量在根!
你可能会想看到什么喜欢的东西 Sysinternal的过程监视器 实捕捉当设法创造这个文件-它显示返回代码的各种Api参与I/O堆和一个他们可能给你一个线索为什么112正在返回到你。我们希望的详细程度在ProcMon是不够的-如果没有,我想还有其他更详细的I/O跟踪设施Windows(但是我不知道他们在我的头上)
该文件给你
char szStreamFileName[] = "C:\\:abcdefghijklm...
它开始
C:\\:
那是一个错误后,或者是否真的有个结肠后有斜线?我认为这是一个非法文件。
如果你试图复制一文件大于2GB从另一文件系统(NTFS)脂肪/FAT32其中有一个2GB的限制,你可以看到这种错误。