NtQueryInformationFile(FileStreamInformation) 失败 STATUS_END_OF_FILE
NtQueryInformationFile(FileStreamInformation) fails with STATUS_END_OF_FILE
我处理在某个位置(由 UNC 路径标识)扫描文件并收集有关它们的各种信息的应用程序。其中一个位是备用文件流的列表——通过 NtQueryInformationFile(..., FileStreamInformation)
调用检索。
这适用于不计其数的文件,除了极少数 - 对于那些少数(大部分 jpg
源自某些相机,但也有 docx
和 zip
)的文件调用失败 STATUS_END_OF_FILE。我找不到任何解释为什么。同一目录中的其他文件没有此类问题,dir /r
显示没有备用流,copy
工作正常。数据损坏的可能性很小。
如果有任何想法可以解释这一点,我将不胜感激。谢谢。
更多信息:
目标位于 VNX 7500 上(可能是其 SMB 服务器实施中的错误?)
NTFS
备用流出了点问题。列出它们会失败,但如果您复制文件——它到达目的地时没有任何备用流(并且应用程序可以毫无问题地处理复制的文件)。我怀疑 OS 复制操作会默默地忽略与 alt 流相关的故障并且(如果发生)不会复制它们。
所以,基本上,将文件复制到别处并将它们复制回来(覆盖原件)可以解决问题。
我处理在某个位置(由 UNC 路径标识)扫描文件并收集有关它们的各种信息的应用程序。其中一个位是备用文件流的列表——通过 NtQueryInformationFile(..., FileStreamInformation)
调用检索。
这适用于不计其数的文件,除了极少数 - 对于那些少数(大部分 jpg
源自某些相机,但也有 docx
和 zip
)的文件调用失败 STATUS_END_OF_FILE。我找不到任何解释为什么。同一目录中的其他文件没有此类问题,dir /r
显示没有备用流,copy
工作正常。数据损坏的可能性很小。
如果有任何想法可以解释这一点,我将不胜感激。谢谢。
更多信息:
目标位于 VNX 7500 上(可能是其 SMB 服务器实施中的错误?)
NTFS
备用流出了点问题。列出它们会失败,但如果您复制文件——它到达目的地时没有任何备用流(并且应用程序可以毫无问题地处理复制的文件)。我怀疑 OS 复制操作会默默地忽略与 alt 流相关的故障并且(如果发生)不会复制它们。
所以,基本上,将文件复制到别处并将它们复制回来(覆盖原件)可以解决问题。