FSCTL_GET_EXTERNAL_BACKING控制代码

FSCTL_GET_EXTERNAL_BACKING控制代码从外部支持提供程序获取文件的后备信息。 支持提供程序包括 Windows 映像格式 (WIM) 提供程序或单个压缩文件提供程序。 外部支持的文件的内容可能驻留在包含查询文件的卷以外的卷上。

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

参数

  • 实例 [in]:仅限 FltFsControlFile 。 调用方不透明的实例指针。 此参数是必需的,不能为 NULL。

  • FileObject [in]: 仅 FltFsControlFile 。 要查询其支持信息的文件的文件指针对象。 此参数是必需的,不能为 NULL。

  • FileHandle [in]:仅 ZwFsControlFile 。 要查询其支持信息的文件的句柄。 此参数是必需的,不能为 NULL。

  • FsControlCode [in]:操作的控制代码。 对此操作使用 FSCTL_GET_EXTERNAL_BACKING

  • InputBuffer [in]:无。 设置为 NULL。

  • InputBufferLength [in]:设置为 0。

  • OutputBuffer [out]:指向输出缓冲区的指针,该缓冲区的大小必须足够大,以便接收后跟提供程序数据的 WOF_EXTERNAL_INFO 结构。 对于 WIM 支持的文件, WOF_EXTERNAL_INFO 后跟 WIM_PROVIDER_EXTERNAL_INFO 结构。 对于单独压缩的文件, WOF_EXTERNAL_INFO 后跟 FILE_PROVIDER_EXTERNAL_INFO_V1 结构。

  • OutputBufferLength [out]: OutputBuffer 指向的缓冲区的大小(以字节为单位)。

  • LengthReturned [out]:指定成功完成时写入 OutputBuffer 的 字节数。

状态块

如果操作成功,FltFsControlFileZwFsControlFile 将返回STATUS_SUCCESS。 否则,相应的函数可能会返回以下 NTSTATUS 值之一。

代码 含义
STATUS_OBJECT_NOT_EXTERNALLY_BACKED 文件未在外部提供支持。
STATUS_INVALID_DEVICE_REQUEST 后备服务不存在或未启动。

注解

当要更新的数据源的后备提供程序是 WIM 文件时,输出缓冲区将包含 WOF_EXTERNAL_INFO 结构,后跟 WIM_PROVIDER_EXTERNAL_INFO 结构。 OutputBufferLength 必须至少为 sizeof (WOF_EXTERNAL_INFO) + sizeof (WIM_PROVIDER_EXTERNAL_INFO) 。 当支持提供程序是单独压缩的文件时,输出缓冲区将包含 WOF_EXTERNAL_INFO 结构,后跟 FILE_PROVIDER_EXTERNAL_INFO_V1 结构。

要求

要求类型 要求
最低受支持的客户端 Windows 8.1 更新
标头 Ntifs.h (包括 Ntifs.hFltkernel.h)

另请参阅

FltFsControlFile

ZwFsControlFile

FSCTL_SET_EXTERNAL_BACKING

WIM_PROVIDER_EXTERNAL_INFO

WOF_EXTERNAL_INFO