FSCTL_GET_REPARSE_POINT控制代码
FSCTL_GET_REPARSE_POINT控制代码检索与指定文件或目录关联的重新分析点数据。
若要执行此操作,请使用以下参数调用 FltFsControlFile 或 ZwFsControlFile 。
有关重新分析点和FSCTL_GET_REPARSE_POINT控制代码的详细信息,请参阅Microsoft Windows SDK文档。
参数
FileObject [in]: FltFsControlFile only. 要从中检索重分析点数据的文件或目录的文件对象指针。 此参数是必需的,不能为 NULL。
FileHandle [in]: 仅 ZwFsControlFile 。 要从中检索重新分析点数据的文件或目录的文件句柄。 此参数是必需的,不能为 NULL。
FsControlCode [in]:操作的控件代码。 对此操作使用 FSCTL_GET_REPARSE_POINT 。
InputBuffer [in]:未与此操作一起使用;设置为 NULL。
InputBufferLength [in]:未与此操作一起使用;设置为零。
OutputBuffer [out]:指向调用方分配 的REPARSE_GUID_DATA_BUFFER 或接收重新分析点数据的 REPARSE_DATA_BUFFER 结构的指针。
OutputBufferLength [out]: OutputBuffer 参数指向的缓冲区的大小(以字节为单位)。 字节数的计算方式如下:
结构 OutputBufferLength 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 缓冲区中仅返回 OutputBufferLength 字节。 FltFsControlFile 的 LengthReturned 参数接收返回的数据的实际长度(以字节为单位)。 这是一个警告代码。 |
STATUS_BUFFER_TOO_SMALL | OutputBuffer 指向的缓冲区小于 sizeof(REPARSE_GUID_DATA_BUFFER) 且不够大,无法保存重新分析点数据。 FltFsControlFile (的 LengthReturned 参数或 ZwFsControlFile 的 IoStatus 参数的信息成员) 接收所需的缓冲区大小。 在这种情况下,不返回重新分析点数据。 这是错误代码。 |
STATUS_IO_REPARSE_DATA_INVALID | 指定的参数值之一无效。 这是错误代码。 |
STATUS_NOT_A_REPARSE_POINT | 文件或目录不是重新分析点。 这是错误代码。 |
要求
要求类型 | 要求 |
---|---|
标头 | Ntifs.h (包括 Ntifs.h 或 Fltkernel.h) |