FSCTL_SET_REPARSE_POINT_EX控制代码

FSCTL_SET_REPARSE_POINT_EX控制代码在文件或目录上设置一个重新分析点。

若要执行此操作,请使用以下参数调用 ZwFsControlFile

微筛选器应使用 FltTagFile 而不是 FSCTL_SET_REPARSE_POINT_EX 来设置重新分析点。

有关重新分析点和FSCTL_SET_REPARSE_POINT_EX控制代码的详细信息,请参阅Microsoft Windows SDK文档。

参数

  • FileHandle:要设置重分析点的文件或目录的文件句柄。 此参数是必需的,不能为 NULL

  • FsControlCode:操作的控制代码。 对此操作使用 FSCTL_SET_REPARSE_POINT_EX。

  • InputBuffer:指向调用方分配 的REPARSE_GUID_DATA_BUFFER 或包含重新分析点数据的 REPARSE_DATA_BUFFER_EX 结构的指针。

  • InputBufferLengthInputBuffer 参数指向的缓冲区的大小(以字节为单位)。 对于REPARSE_GUID_DATA_BUFFER结构,此值必须至少REPARSE_GUID_DATA_BUFFER_HEADER_SIZE,加上用户定义的数据的大小,并且该值必须小于或等于MAXIMUM_REPARSE_DATA_BUFFER_SIZE。 对于REPARSE_DATA_BUFFER_EX结构,此值必须至少REPARSE_DATA_BUFFER_HEADER_SIZE,加上用户定义的数据的大小,并且该值必须小于或等于MAXIMUM_REPARSE_DATA_BUFFER_SIZE。

  • OutputBuffer:未与此操作一起使用;设置为 NULL

  • OutputBufferLength:未与此操作一起使用;设置为零。

状态块

ZwFsControlFile 返回STATUS_SUCCESS或适当的 NTSTATUS 值,例如以下值之一:

说明
STATUS_DIRECTORY_NOT_EMPTY 无法在非空目录上设置重分析点。 这是错误代码。
STATUS_EAS_NOT_SUPPORTED 如果此请求位于事务中,则无法对文件设置重分析点。 这是错误代码。
STATUS_IO_REPARSE_DATA_INVALID 指定的参数值之一无效。 这是错误代码。
STATUS_IO_REPARSE_TAG_MISMATCH 调用方指定的重分析标记与要修改的重新分析点的标记不匹配。 这是错误代码。
STATUS_NOT_A_REPARSE_POINT 文件或目录不是重新分析点。 这是错误代码。
STATUS_REPARSE_ATTRIBUTE_CONFLICT 重新分析点是第三方重新分析点,调用方指定的重新分析 GUID 与要修改的重新分析点的 GUID 不匹配。 这是错误代码。

要求

要求类型 要求
标头 Ntifs.h (包括 Ntifs.hFltkernel.h)

另请参阅

IRP_MJ_FILE_SYSTEM_CONTROL 的 FLT_PARAMETERS

FltTagFile

FltUntagFile

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER_EX

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile