FSCTL_SET_EXTERNAL_BACKING控制代码

FSCTL_SET_EXTERNAL_BACKING控制代码由外部支持提供程序设置文件(例如 Windows 映像格式 (WIM) 文件或压缩文件)的后备源。 外部支持的文件的内容可能源自文件所在的卷以外的卷。

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

参数

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

  • FileObject [in]: FltFsControlFile only. 为其设置了支持的文件的文件指针对象。 此参数是必需的,不能为 NULL。

  • FileHandle [in]: 仅 ZwFsControlFile 。 为其设置了后备的文件的句柄。 此参数是必需的,不能为 NULL。

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

  • InputBuffer [in]:指向输入缓冲区的指针,其中包含后跟提供程序数据的 WOF_EXTERNAL_INFO 结构。 对于 WIM 支持的文件, WOF_EXTERNAL_INFO 后跟 WIM_PROVIDER_EXTERNAL_INFO 结构。

  • InputBufferLength [in]: InputBuffer 中提供的数据的大小。

  • OutputBuffer [out]:无。 设置为 NULL。

  • OutputBufferLength [in]:设置为 0。

状态块

如果操作成功,FltFsControlFileZwFsControlFile 将返回STATUS_SUCCESS。 否则,返回相应的 NTSTATUS 值。

注解

如果添加的数据源的后备提供程序是 WIM 提供程序,则输入缓冲区将包含 WOF_EXTERNAL_INFO 结构,后跟 WIM_PROVIDER_EXTERNAL_INFO 结构。 在这种情况下, InputBufferLengthsize 为 (WOF_EXTERNAL_INFO) + sizeof (WIM_PROVIDER_EXTERNAL_INFO)

单独压缩的文件为不会修改的数据(包括可执行文件)提供良好的压缩。 如果打开这些文件进行写入,则文件将以透明方式解压缩。 若要指定单独压缩的文件,输入缓冲区将包含 WOF_EXTERNAL_INFO 结构,后跟 FILE_PROVIDER_EXTERNAL_INFO_V1 结构。 在本例中, InputBufferLength的 size 为 (WOF_EXTERNAL_INFO) + sizeof (FILE_PROVIDER_EXTERNAL_INFO_V1) 。 从Windows 10开始,可以使用单个压缩文件。

要求

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

另请参阅

FltFsControlFile

ZwFsControlFile

FSCTL_DELETE_EXTERNAL_BACKING

FSCTL_GET_EXTERNAL_BACKING

WIM_PROVIDER_EXTERNAL_INFO

WOF_EXTERNAL_INFO