FSCTL_QUERY_ALLOCATED_RANGES IOCTL (ntifs.h)

FSCTL_QUERY_ALLOCATED_RANGES 请求扫描文件或备用 查找可能包含非零数据的字节范围,然后返回有关这些范围的信息。 只有稀疏文件可以有操作系统已知的零范围。 对于其他文件,输出缓冲区将仅包含包含起始点和所请求长度的单个范围。

主要代码

FSCTL_QUERY_ALLOCATED_RANGES

输入缓冲区

指向 FILE_ALLOCATED_RANGE_BUFFER 结构的指针,该结构指示要查询分配的范围。

输入缓冲区长度

InputBuffer 指向的 FILE_ALLOCATED_RANGE_BUFFER 结构的大小(以字节为单位)。

输出缓冲区

指向返回查询结果的零个或多个 FILE_ALLOCATED_RANGE_BUFFER 数据元素数组的指针。 有关详细信息,请参阅下文。

输出缓冲区长度

OutputBuffer 指向的缓冲区的大小(以字节为单位)。

输入/输出缓冲区

n/a

输入/输出缓冲区长度

n/a

状态块

保留供系统使用。

言论

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

参数 描述
实例 [in]仅适用于 FltFsControlFile。 调用方不透明的实例指针。 此参数是必需的,不能为 NULL。
FileObject [in]仅适用于 FltFsControlFile。 作为此请求目标的文件或目录的文件对象指针。 此参数是必需的,不能为 NULL。
FileHandle [in]仅适用于 ZwFsControlFile。 此请求的目标文件或目录的文件句柄。 此参数是必需的,不能为 NULL。
IoStatusBlock [out]仅适用于 ZwFsControlFile。 指向包含请求最终状态的 IO_STATUS_BLOCK 结构的指针。
FsControlCode [in]设置为 FSCTL_QUERY_ALLOCATED_RANGES
InputBuffer [in]指向 FILE_ALLOCATED_RANGE_BUFFER 结构的指针,该结构指示要查询分配的范围。
InputBufferLength [in]InputBuffer 指向的缓冲区的大小(以字节为单位)。
OutputBuffer [out]指向返回查询结果的零个或多个 FILE_ALLOCATED_RANGE_BUFFER 数据元素数组的指针。 有关详细信息,请参阅下文。
OutputBufferLength [out]OutputBuffer 指向的缓冲区的大小(以字节为单位)。
LengthReturned [out]指向调用方分配的变量的指针,该变量接收 OutputBuffer缓冲区中返回的信息的大小(以字节为单位)。

FSCTL_QUERY_ALLOCATED_RANGES 返回缓冲区中零个或多个 FILE_ALLOCATED_RANGE_BUFFER 数据元素的数组,OutputBuffer 指向该数组。 返回的 FILE_ALLOCATED_RANGE_BUFFER 元素数通过除以 LengthReturned 返回的值除以 sizeof(FILE_ALLOCATED_RANGE_BUFFER)计算。 返回的范围必须与 InputBuffer中指定的范围相交。 当文件没有分配的范围时,将返回零 FILE_ALLOCATED_RANGE_BUFFER 数据元素。

返回值

成功完成后,FSCTL_QUERY_ALLOCATED_RANGES 返回STATUS_SUCCESS;否则,它将返回错误代码。 常见的错误代码如下。

错误代码 意义
STATUS_INVALID_PARAMETER 参数无效。 例如:句柄不是文件;InputBuffer 的大小小于 FILE_ALLOCATED_RANGE_BUFFER 结构的大小;FileOffset 小于零;长度 小于零;或 FileOffset长度 大于0x7FFFFFFFFFFFFFFF。
STATUS_INVALID_USER_BUFFER 输入缓冲区或输出缓冲区与 4 字节边界不对齐。
STATUS_BUFFER_TOO_SMALL 输出缓冲区太小,无法包含 FILE_ALLOCATED_RANGE_BUFFER 结构。
STATUS_BUFFER_OVERFLOW 输出缓冲区太小,无法包含所需的 FILE_ALLOCATED_RANGE_BUFFER 结构数。

要求

要求 价值
最低支持的客户端 Windows 2000
标头 ntifs.h

另请参阅

FILE_ALLOCATED_RANGE_BUFFER

FltFsControlFile

ZwFsControlFile