重分析点操作

若要确定文件系统是否支持重新分析点,请调用 GetVolumeInformation 函数并检查 FILE_SUPPORTS_REPARSE_POINTS 位标志。

使用 DeviceIoControl 函数可以设置、修改、获取和删除重新分析点。 下表描述了可以使用 DeviceIoControl 执行的重新分析点操作。

Operation 说明
FSCTL_SET_REPARSE_POINT 允许调用程序设置新的重新分析点,或修改现有的重新分析点。
FSCTL_GET_REPARSE_POINT 获取存储在现有重分析点中的信息。
FSCTL_DELETE_REPARSE_POINT 删除现有的重新分析点。

如果要修改、获取或删除重新分析点,则必须在文件中包含的操作中指定相同的重新分析标记。 否则,操作将失败, 并ERROR_REPARSE_TAG_MISMATCH错误。 如果要修改或删除重新分析点,还必须在文件中包含的操作中指定重新分析 GUID 。 否则,操作将失败, 并ERROR_REPARSE_ATTRIBUTE_CONFLICT错误。

若要确定文件或目录是否包含重新分析点,请使用 GetFileAttributes 函数。 如果文件或目录具有关联的重新分析点,则设置 FILE_ATTRIBUTE_REPARSE_POINT 属性。

若要覆盖现有的重分析点,而没有文件或目录的句柄,请使用 FILE_FLAG_OPEN_REPARSE_POINT调用 CreateFile。 无论相应的文件系统筛选器是否已安装并正常工作,此标志都允许打开文件。