FSCTL_GET_REPARSE_POINT控制代码
该FSCTL_GET_REPARSE_POINT代码检索与指定文件或目录关联的重新分析点数据。
若要执行此操作,请通过以下参数调用 FltFsControlFile 或 ZwFsControlFile 。
有关重新分析点和控制代码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。
状态块
FltFsControlFile 或 ZwFsControlFile 返回 STATUS_SUCCESS 或适当的 NTSTATUS 值,例如以下值之一:
术语 | 说明 |
---|---|
STATUS_BUFFER_OVERFLOW |
OutputBuffer 参数指向的缓冲区足够大,可以容纳REPARSE_GUID_DATA_BUFFER或REPARSE_DATA_BUFFER的固定部分,但不能保存用户定义的数据。 在这种情况下,只会在 OutputBuffer 缓冲区中返回重新分析点数据的固定部分。 FltFsControlFile 的 LengthRe以字节为单位接收返回的数据的实际长度。 这是警告代码。 |
STATUS_BUFFER_TOO_SMALL |
OutputBuffer 参数指向的缓冲区不够大,无法保存重新分析点数据。 FltFsControlFile (的 LengthRe一参数或 ZwFsControlFile 的 IoStatus 参数的 Information 成员) 接收所需的缓冲区大小。 在这种情况下,不返回重新分析点数据。 这是错误代码。 |
STATUS_IO_REPARSE_DATA_INVALID |
指定的参数值之一无效。 这是错误代码。 |
STATUS_NOT_A_REPARSE_POINT |
文件或目录不是重新分析点。 这是错误代码。 |
要求
标头 |
Ntifs.h (包括 Ntifs.h 或 Fltkernel.h) |