FSCTL_ADD_OVERLAY控制代码
FSCTL_ADD_OVERLAY控制代码将新的外部后备源添加到卷的命名空间。 此后备源可以是 WINDOWS 映像格式 (WIM) 文件。
若要执行此操作,请使用以下参数调用 FltFsControlFile 或 ZwFsControlFile 。
参数
实例 [in]: 仅 FltFsControlFile 。 调用方不透明的实例指针。 此参数是必需的,不能为 NULL。
FileObject: [in]: FltFsControlFile only. 为其添加覆盖的卷的文件指针对象。 此参数是必需的,不能为 NULL。
FileHandle [in]: 仅 ZwFsControlFile 。 向其添加覆盖的卷的句柄。 此参数是必需的,不能为 NULL。
FsControlCode [in]:操作的控件代码。 对此操作使用 FSCTL_ADD_OVERLAY 。
InputBuffer [in]:指向输入缓冲区的指针,该缓冲区必须包含 WOF_EXTERNAL_INFO 结构。 如果需要,在 WOF_EXTERNAL_INFO后立即包含其他提供程序特定的数据。
InputBufferLength [in]:设置为 sizeof (WOF_EXTERNAL_INFO) 加上任何其他提供程序输入数据的大小。
OutputBuffer [out]:指向输出缓冲区的指针,其中包含来自添加操作的任何结果信息。
OutputBufferLength [out]: OutputBuffer 指向的缓冲区的大小。
状态块
如果操作成功,FltFsControlFile 或 ZwFsControlFile 将返回STATUS_SUCCESS。 否则,相应的函数可能会返回以下 NTSTATUS 值之一。
代码 | 含义 |
---|---|
STATUS_ACCESS_DENIED | 请求者没有管理权限。 |
STATUS_BUFFER_TOO_SMALL | OutputBuffer 指向的、由 OutputBufferLength 指定的输出缓冲区的长度太小。 |
STATUS_INTERNAL_ERROR | 请求的卷不可访问。 |
STATUS_INVALID_DEVICE_REQUEST | 支持服务不存在或未启动。 |
注解
当添加的后备源是 Windows 映像格式 (WIM) 文件时,输入缓冲区将包含 WOF_EXTERNAL_INFO 结构,后跟 WIM_PROVIDER_ADD_OVERLAY_INPUT 结构。 在这种情况下, InputBufferLength 的 size 为 (WOF_EXTERNAL_INFO) + sizeof (WIM_PROVIDER_ADD_OVERLAY_INPUT) 。 请求完成后, OutputBuffer 指向的数据包含单个LARGE_INTEGER值,该值是 WIM 文件的新数据源标识符。
其他支持提供程序将定义其自己的特定输入参数结构和输出数据类型。
要求
要求类型 | 要求 |
---|---|
最低受支持的客户端 | Windows 8.1 更新 |
标头 | Ntifs.h (包括 Ntifs.h 或 Fltkernel.h) |