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_BUFFER 或 REPARSE_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.h 或 Fltkernel.h) |