FSCTL_SUSPEND_OVERLAY控制代码

FSCTL_SUSPEND_OVERLAY控制代码会挂起附加到卷的后备源,从而阻止访问后备源并允许对其进行修改或删除。

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

BOOL 
   WINAPI 
   DeviceIoControl( (HANDLE)       hDevice,         // handle to device
                    (DWORD)        FSCTL_SUSPEND_OVERLAY, // dwIoControlCode
                    (LPDWORD)      lpInBuffer,      // input buffer
                    (DWORD)        nInBufferSize,   // size of input buffer
                    (LPDWORD)      lpOutBuffer,     // output buffer
                    (DWORD)        nOutBufferSize,  // size of output buffer
                    (LPDWORD)      lpBytesReturned, // number of bytes returned
                    (LPOVERLAPPED) lpOverlapped );  // OVERLAPPED structure

参数

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

  • FileObject [in]: FltFsControlFile only. 为其更新覆盖的卷的文件指针对象。 此参数是必需的,不能为 NULL。

  • FileHandle [in]: 仅 ZwFsControlFile 。 为其更新覆盖的卷的句柄。 此参数是必需的,不能为 NULL。

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

  • InputBuffer [in]:指向输入缓冲区的指针,该缓冲区必须包含 WOF_EXTERNAL_INFO 结构。 如果需要,在 WOF_EXTERNAL_INFO后立即包含其他提供程序特定的数据。 如果提供程序是 WIM 文件, 则WOF_EXTERNAL_INFO 后会包含 WIM_PROVIDER_SUSPEND_OVERLAY_INPUT结构。

  • InputBufferLength [in]:设置为 sizeof (WOF_EXTERNAL_INFO) 加上任何其他提供程序输入数据的大小。

  • OutputBuffer [out]:未使用。 设置为 NULL。

  • OutputBufferLength [in]:设置为 0。

状态块

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

代码 含义
STATUS_ACCESS_DENIED 请求者没有管理权限。
STATUS_BUFFER_TOO_SMALL InputBuffer 指向并由 InputBufferLength 指定的输入缓冲区的长度太小。
STATUS_INTERNAL_ERROR 请求的卷不可访问。
STATUS_INVALID_DEVICE_REQUEST 支持服务不存在或未启动。

注解

当要删除的后备源是 Windows 映像格式 (WIM) 文件时,输入缓冲区将包含 WOF_EXTERNAL_INFO 结构,后跟 WIM_PROVIDER_SUSPEND_OVERLAY_INPUT 结构。 在这种情况下, InputBufferLengthsize 为 (WOF_EXTERNAL_INFO) + sizeof (WIM_PROVIDER_REMOVE_OVERLAY_INPUT) 。 WIM_PROVIDER_SUSPEND_OVERLAY_INPUT 中的 DataSourceId 值必须为以前在FSCTL_ADD_OVERLAY请求中添加的 WIM 文件。

其他支持提供程序将定义其自己的特定输入参数结构。

要求

要求类型 要求
标头 Ntifs.h (包括 Ntifs.hFltkernel.h)

另请参阅

FSCTL_REMOVE_OVERLAY

FSCTL_UPDATE_OVERLAY

FSCTL_GET_EXTERNAL_BACKING

FSCTL_SET_EXTERNAL_BACKING