FSCTL_ENUM_OVERLAY控件程式代碼
FSCTL_ENUM_OVERLAY控件程式代碼會列舉指定磁碟區支援提供者的所有數據源。
若要執行這項作業,請使用下列參數呼叫 FltFsControlFile 或 ZwFsControlFile 。
參數
實例 [in]: 僅 FltFsControlFile 。 呼叫端的不透明實例指標。 這個參數是必要的,而且不能是 NULL。
FileObject [in]: FltFsControlFile 僅限 。 檔案指針對象,指定要卸除的磁碟區。 這個參數是必要的,而且不能是 NULL。
FileHandle [in]:僅限 ZwFsControlFile 。 要卸除之磁碟區的檔案句柄。 這個參數是必要的,而且不能是 NULL。
FsControlCode [in]:作業的控制程序代碼。 使用此作業 FSCTL_REMOVE_OVERLAY 。
InputBuffer [in]:輸入緩衝區的指標,必須包含 WOF_EXTERNAL_INFO 結構。
InputBufferLength [in]:設定為 sizeof (WOF_EXTERNAL_INFO) 。
OutputBuffer [out]:輸出緩衝區的指標,該緩衝區會接收一或多個支援磁碟區的數據源 WIM_PROVIDER_OVERLAY_ENTRY 結構。
OutputBufferLength [out]: OutputBuffer 指向的緩衝區大小,以位元組為單位。
LengthReturned [out]:指定成功完成時寫入 OutputBuffer 的位元組數目。
狀態區塊
FltFsControlFile 或 ZwFsControlFile 會在作業成功時傳回STATUS_SUCCESS。 否則,適當的函式可能會傳回下列其中一個NTSTATUS值。
程式碼 | 意義 |
---|---|
STATUS_ACCESS_DENIED | 要求者沒有系統管理許可權。 |
STATUS_BUFFER_TOO_SMALL | OutputBuffer 所指向且由 OutputBufferLength 指定的輸出緩衝區長度太小。 |
STATUS_INTERNAL_ERROR | 無法存取要求的磁碟區。 |
STATUS_INVALID_DEVICE_REQUEST | 備份服務不存在或未啟動。 |
備註
列舉 WIM 提供者的數據源時,輸出緩衝區會包含 WIM_PROVIDER_OVERLAY_ENTRY 結構的陣列。 輸出緩衝區的大小必須夠大,才能包含所有重疊項目,否則呼叫會傳回STATUS_BUFFER_TOO_SMALL。
其他支援提供者會定義自己的特定列舉結構。
規格需求
需求類型 | 需求 |
---|---|
最低支援的用戶端 | Windows 8.1 更新版 |
標頭 | Ntifs.h (包括 Ntifs.h 或 Fltkernel.h) |