FSCTL_GET_REPARSE_POINT控制代码

该FSCTL_GET_REPARSE_POINT代码检索与指定文件或目录关联的重新分析点数据。

若要执行此操作,请通过以下参数调用 FltFsControlFileZwFsControlFile

有关重新分析点和控制代码FSCTL_GET_REPARSE_POINT,请参阅Microsoft Windows SDK文档。

Parameters

FileObject
仅 FltFsControlFile 。 用于检索重新分析点数据的文件或目录的文件对象指针。 此参数是必需的,不能为 NULL

FileHandle
仅 ZwFsControlFile 。 用于检索重新分析点数据的文件或目录的文件句柄。 此参数是必需的,不能为 NULL

FsControlCode
操作的控制代码。 使用 FSCTL_GET_REPARSE_POINT 执行该操作。

InputBuffer
不与此操作一起使用;设置为 NULL

InputBufferLength
不与此操作一起使用;设置为零。

OutputBuffer
指向调用方分配的REPARSE_GUID_DATA_BUFFER或REPARSE_DATA_BUFFER重新分析点数据的结构的指针。

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

状态块

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

术语 说明

STATUS_BUFFER_OVERFLOW

OutputBuffer 参数指向的缓冲区足够大,可以容纳REPARSE_GUID_DATA_BUFFER或REPARSE_DATA_BUFFER的固定部分,但不能保存用户定义的数据。 在这种情况下,只会在 OutputBuffer 缓冲区中返回重新分析点数据的固定部分。 FltFsControlFileLengthRe以字节为单位接收返回的数据的实际长度。 这是警告代码。

STATUS_BUFFER_TOO_SMALL

OutputBuffer 参数指向的缓冲区不够大,无法保存重新分析点数据。 FltFsControlFile (的 LengthRe一参数或 ZwFsControlFileIoStatus 参数的 Information 成员) 接收所需的缓冲区大小。 在这种情况下,不返回重新分析点数据。 这是错误代码。

STATUS_IO_REPARSE_DATA_INVALID

指定的参数值之一无效。 这是错误代码。

STATUS_NOT_A_REPARSE_POINT

文件或目录不是重新分析点。 这是错误代码。

要求

标头

Ntifs.h (包括 Ntifs.h 或 Fltkernel.h)

另请参阅

FLT_CALLBACK_DATA

IRP_MJ_FILE_SYSTEM_CONTROL 的 FLT_PARAMETERS

FLT_TAG_DATA_BUFFER

FltFsControlFile

FltTagFile

FltUntagFile

FSCTL_DELETE_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile