共用方式為


FSCTL_ENUM_EXTERNAL_BACKING控件程式代碼

FSCTL_ENUM_EXTERNAL_BACKING控件程式代碼會開始或繼續在具有備份來源的磁碟區上列舉檔案。 針對每個成功完成要求,會傳回所支援檔案的標識碼。 不論哪個外部提供者支援它,都會列舉所有支持的檔案。 需要後續 FSCTL_ENUM_EXTERNAL_BACKING 要求,才能列舉磁碟區上所有支持的檔案。

若要執行這項作業,請使用下列參數呼叫 FltFsControlFileZwFsControlFile

參數

  • 實例 [in]: 僅限 FltFsControlFile 。 呼叫端的不透明實例指標。 這個參數是必要的,而且不能是 NULL

  • FileObject [in]: 僅限 FltFsControlFile 。 指定要卸除之磁碟區的檔案指針對象。 這個參數是必要的,而且不能是 NULL

  • FileHandle [in]: 僅限 ZwFsControlFile 。 要卸除之磁碟區的檔案句柄。 這個參數是必要的,而且不能是 NULL

  • FsControlCode [in]:作業的控制程序代碼。 針對此作業使用 FSCTL_ENUM_EXTERNAL_BACKING

  • InputBuffer [in]: None。 設定為 NULL

  • InputBufferLength [in]:設定為 0。

  • OutputBuffer [out]:輸出緩衝區的指標,其大小必須夠大,才能接收一或多個 WOF_EXTERNAL_FILE_ID 結構。

  • OutputBufferLength [out]: OutputBuffer 所指向的輸出緩衝區大小。 OutputBufferLength 必須是 >= sizeof (WOF_EXTERNAL_FILE_ID) 。

  • LengthReturned [out]:指定成功完成時寫入 OutputBuffer 的位元組數目。

狀態區塊

FltFsControlFileZwFsControlFile 會在作業成功時傳回STATUS_SUCCESS。 否則,適當的函式可能會傳回下列其中一個NTSTATUS值。

程式碼 意義
STATUS_ACCESS_DENIED 要求者沒有系統管理許可權。
STATUS_BUFFER_TOO_SMALL OutputBuffer 所指向且由 OutputBufferLength 指定的輸出緩衝區長度太小。
STATUS_NO_MORE_FILES 磁碟區上沒有更多檔案具有備份來源。
STATUS_INTERNAL_ERROR 無法存取要求的磁碟區。
STATUS_INVALID_DEVICE_REQUEST 備份服務不存在或未啟動。

備註

OutputBuffer 中傳回的WOF_EXTERNAL_FILE_ID結構包含所支援檔案的唯一檔案標識碼。 結構定義於 ntifs.h 中,如下所示。

typedef struct _WOF_EXTERNAL_FILE_ID {
    FILE_ID_128 FileId;
} WOF_EXTERNAL_FILE_ID, *PWOF_EXTERNAL_FILE_ID;

系統會連續發出 FSCTL_ENUM_EXTERNAL_BACKING 要求,以擷取磁碟區上具有支援來源之每個檔案的標識符。 列舉所有檔案時,會傳回STATUS_NO_MORE_FILES狀態代碼。

規格需求

需求類型 需求
最低支援的用戶端 Windows 8.1 更新版
標頭 Ntifs.h (包含 Ntifs.hFltkernel.h)

另請參閱

FltFsControlFile

ZwFsControlFile

FSCTL_GET_EXTERNAL_BACKING