FSCTL_REMOVE_OVERLAY 控制代码
FSCTL_REMOVE_OVERLAY控制代码从卷中删除后备源。
若要执行此操作,请调用具有以下参数的 FltFsControlFile 或 ZwFsControlFile 。
Parameters
实例 [in]
仅FltFsControlFile 。 调用方的不透明实例指针。 此参数是必需的,不能为 NULL。
FileObject [in]
仅FltFsControlFile 。 从中删除覆盖的卷的文件指针对象。 此参数是必需的,不能为 NULL。
FileHandle [in]
仅ZwFsControlFile 。 要为其删除覆盖的卷的句柄。 此参数是必需的,不能为 NULL。
FsControlCode [in]
操作的控制代码。 使用 FSCTL_REMOVE_OVERLAY 执行此操作。
InputBuffer
指向输入缓冲区的指针,该缓冲区必须包含 WOF_EXTERNAL_INFO 结构。 如果需要,其他提供程序特定的数据会在 WOF_EXTERNAL_INFO后立即包括在内。 如果提供程序是 WIM 文件, WOF_EXTERNAL_INFO后将包含WIM_PROVIDER_REMOVE_OVERLAY_INPUT结构。
InputBufferLength [in]
设置为 sizeof (WOF_EXTERNAL_INFO) 加上任何其他提供程序输入数据的大小。
OutputBuffer [out]
未使用。 设置为 NULL。
OutputBufferLength [in]
设置为 0。
状态块
如果操作成功,则FltFsControlFile或ZwFsControlFile将返回 STATUS_SUCCESS。 否则,相应的函数可能会返回以下 NTSTATUS 值之一。
术语 | 说明 |
---|---|
STATUS_ACCESS_DENIED |
请求者没有管理权限。 |
STATUS_BUFFER_TOO_SMALL |
OutputBuffer(由OutputBufferLength指定)指向的输出缓冲区的长度太小。 |
STATUS_INTERNAL_ERROR |
请求的卷不可访问。 |
STATUS_INVALID_DEVICE_REQUEST |
后备服务不存在或未启动。 |
备注
如果要删除的后备源是 (WIM) 文件的 Windows 映像格式,则输入缓冲区将包含一个WOF_EXTERNAL_INFO结构,后跟一个WIM_PROVIDER_REMOVE_OVERLAY_INPUT结构。 在这种情况下, InputBufferLength 将为 sizeof (WOF_EXTERNAL_INFO) + sizeof (WIM_PROVIDER_REMOVE_OVERLAY_INPUT) 。 WIM_PROVIDER_REMOVE_OVERLAY_INPUT中的DataSourceId值必须为之前添加到FSCTL_ADD_OVERLAY请求中的 WIM 文件。
其他支持提供商将定义自己的特定输入参数结构。
要求
版本 |
可从 Windows 8.1 更新开始。 |
标头 |
Ntifs (包含 Ntifs 或 Fltkernel) |