FSCTL_DELETE_REPARSE_POINT控制代码

FSCTL_DELETE_REPARSE_POINT控制代码从指定的文件或目录中删除重新分析点。 使用 FSCTL_DELETE_REPARSE_POINT 不会删除文件或目录。

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

微筛选器应使用 FltUntagFile 而不是 FSCTL_DELETE_REPARSE_POINT 来删除重新分析点。

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

参数

  • FileHandle [in]:要从中删除重新分析点的文件或目录的文件句柄。 调用方必须具有对文件或目录的写入访问权限。 此参数是必需的,不能为 NULL

  • FsControlCode [in]:操作的控制代码。 对此操作使用FSCTL_DELETE_REPARSE_POINT。

  • InputBuffer [in]:指向 REPARSE_GUID_DATA_BUFFERREPARSE_DATA_BUFFER 结构的指针。 在此结构的 ReparseTag 成员中指定的标记必须与要删除的重新分析点的标记匹配, 并且 ReparseDataLength 成员必须为零。 此外,如果重新分析点是非 Microsoft) 重分析点的第三方 (,则REPARSE_GUID_DATA_BUFFER结构的 ReparseGuid 成员中指定的 GUID 必须与要删除的重分析点的 GUID 匹配。

  • InputBufferLength [in]: InputBuffer 参数指向的缓冲区的大小(以字节为单位)。 对于REPARSE_GUID_DATA_BUFFER结构,此值必须完全REPARSE_GUID_DATA_BUFFER_HEADER_SIZE。 对于REPARSE_DATA_BUFFER结构,此值必须完全REPARSE_DATA_BUFFER_HEADER_SIZE。

  • OutputBuffer [out]:无。 设置为 NULL。

  • OutputBufferLength [out]:设置为 0。

状态块

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

代码 含义
STATUS_IO_REPARSE_DATA_INVALID 指定的参数值之一无效。 这是错误代码。
STATUS_IO_REPARSE_TAG_INVALID 调用方指定的重新分析标记无效。 这是错误代码。
STATUS_IO_REPARSE_TAG_MISMATCH 调用方指定的重新分析标记与要删除的重新分析点的标记不匹配。 这是错误代码。
STATUS_REPARSE_ATTRIBUTE_CONFLICT 重新分析点是第三方重新分析点,调用方指定的重新分析 GUID 与要删除的重新分析点的 GUID 不匹配。 这是错误代码。

要求

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

另请参阅

IRP_MJ_FILE_SYSTEM_CONTROL 的 FLT_PARAMETERS

FltTagFile

FltUntagFile

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile