FSCTL_SUSPEND_OVERLAY控件程式代碼
FSCTL_SUSPEND_OVERLAY控制程式代碼會暫停附加至磁碟區的備份來源,防止存取備份來源,並允許修改或移除它。
若要執行這項作業,請使用下列參數呼叫 FltFsControlFile 或 ZwFsControlFile 。
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 僅限 。 重疊更新所在磁碟區的檔案指針對象。 這個參數是必要的,而且不能是 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。
狀態區塊
FltFsControlFile 或 ZwFsControlFile 會在作業成功時傳回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 結構。 在此情況下, InputBufferLength 會 是 sizeof (WOF_EXTERNAL_INFO) + sizeof (WIM_PROVIDER_REMOVE_OVERLAY_INPUT) 。 WIM_PROVIDER_SUSPEND_OVERLAY_INPUT中的 DataSourceId 值必須適用於先前在FSCTL_ADD_OVERLAY要求中新增的 WIM 檔案。
其他支援提供者會定義自己的特定輸入參數結構。
規格需求
需求類型 | 需求 |
---|---|
標頭 | Ntifs.h (包括 Ntifs.h 或 Fltkernel.h) |