共用方式為


IVssBackupComponents::Query 方法 (vsbackup.h)

Query 方法會查詢系統上的提供者,以及/或位於目前內容之系統中已完成的陰影複製。 方法只能在備份作業期間呼叫。

語法

HRESULT Query(
  [in]  VSS_ID          QueriedObjectId,
  [in]  VSS_OBJECT_TYPE eQueriedObjectType,
  [in]  VSS_OBJECT_TYPE eReturnedObjectsType,
  [out] IVssEnumObject  **ppEnum
);

參數

[in] QueriedObjectId

保留的。 此參數的值必須GUID_NULL。

[in] eQueriedObjectType

表示查詢對指定物件類型的限制。 VSS_OBJECT_NONE的值表示沒有限制,也就是說,將會查詢所有物件。

目前,此參數的值必須 VSS_OBJECT_NONE

[in] eReturnedObjectsType

要傳回的物件類型。 此參數的值必須是 VSS_OBJECT_SNAPSHOTVSS_OBJECT_PROVIDER

[out] ppEnum

IVssEnumObject 列舉值物件的雙間接指標。

傳回值

以下是此方法的有效傳回碼。

意義
S_OK
已成功傳回 IVssEnumObject 介面實例的指標。
E_ACCESSDENIED
呼叫端不是系統管理員或備份操作員。
E_INVALIDARG
其中一個參數值無效。
E_OUTOFMEMORY
記憶體不足或其他系統資源。
VSS_E_BAD_STATE
備份元件物件未初始化、此方法已在還原作業期間呼叫,或此方法未在正確的順序內呼叫。
VSS_E_OBJECT_NOT_FOUND
找不到查詢的物件。
VSS_E_PROVIDER_VETO
預期的提供者錯誤。 提供者在事件記錄檔中記錄錯誤。 如需詳細資訊,請參閱 VSS 下的事件和錯誤處理
VSS_E_UNEXPECTED
非預期的錯誤。 錯誤碼會記錄在錯誤記錄檔中。 如需詳細資訊,請參閱 VSS 下的事件和錯誤處理

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 在 Windows Server 2008 R2 和 Windows 7 之前,不支援此值。 改用E_UNEXPECTED。

VSS_E_UNEXPECTED_PROVIDER_ERROR
未預期的提供者錯誤。 錯誤碼會記錄在錯誤記錄檔中。 如需詳細資訊,請參閱 VSS 下的事件和錯誤處理

備註

因為 Query 只會傳回已完成陰影複製的資訊,所以唯一可以揭露的陰影複製狀態是VSS_SS_COMPLETED。

方法只能在備份作業期間呼叫,而且之前必須呼叫 IVssBackupComponents::InitializeForBackupIVssBackupComponents::SetContext

雖然 Query 可以傳回系統上所有可用提供者的資訊,但只會傳回 IVssBackupComponents::SetContext) 所設定之目前 (內容之陰影複製的相關信息。 例如,如果 _VSS_SNAPSHOT_CONTEXT 內容設定為 VSS_CTX_BACKUP則查詢 將不會傳回以VSS_CTX_FILE_SHARE_BACKUP內容建立的陰影複製資訊。

雖然此方法目前會傳回所有可用提供者和/或所有已完成陰影複製的清單,但未來可能支援特殊查詢:例如,查詢與提供者相關聯的所有陰影複製。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 vsbackup.h (包括 VsBackup.h、Vss.h、VsWriter.h)
程式庫 VssApi.lib

另請參閱

IVssBackupComponents

IVssBackupComponents::InitializeForBackup

IVssBackupComponents::SetContext

IVssEnumObject