IVssHardwareSnapshotProvider::AreLunsSupported 方法 (vsprov.h)

AreLunsSupported 方法會決定硬體提供者是否支援針對參與磁碟區的所有 LUN 建立陰影複製。 VSS 會針對新增至陰影複製集的每個磁碟區呼叫 AreLunsSupported 方法。 呼叫此方法之前,VSS 會決定參與磁碟區的 LUN。

針對特定磁碟區,每個 LUN 只能參與一次。 特定 LUN 可能會對多個磁碟區造成貢獻。

注意 只有 Windows Server 作業系統才支持硬體提供者。
 

語法

HRESULT AreLunsSupported(
  [in]      LONG                lLunCount,
  [in]      LONG                lContext,
  [in]      VSS_PWSZ            *rgwszDevices,
  [in, out] VDS_LUN_INFORMATION *pLunInformation,
  [out]     BOOL                *pbIsSupported
);

參數

[in] lLunCount

造成此陰影複製磁碟區的 LUN 計數。

[in] lContext

目前陰影複製集的陰影複製內容,由來自 _VSS_VOLUME_SNAPSHOT_ATTRIBUTES 列舉之旗標的位掩碼所列舉。 如果 已設定VSS_VOLSNAP_ATTR_TRANSPORTABLE 旗標,陰影複製集是可傳輸的。

[in] rgwszDevices

對應至要複製陰影之 LUN 的裝置清單。

[in, out] pLunInformation

lLunCountVDS_LUN_INFORMATION 結構的陣列,每個 LUN 各有一個,每個 LUN 都會參與此陰影複製磁碟區。

[out] pbIsSupported

BOOL 值的指標。 如果陰影複製支援所有裝置,提供者應該將 TRUE 值儲存在 pbIsSupported 所指向的位置。

傳回值

這個方法可以傳回其中一個值。

傳回碼/值 Description
S_OK
0x00000000L
作業已順利完成。
E_OUTOFMEMORY
0x8007000EL
記憶體不足或其他系統資源。
E_INVALIDARG
0x80070057L
其中一個參數值無效。
VSS_E_PROVIDER_VETO
0x80042306L
發生非預期的提供者錯誤。 提供者必須在應用程式事件記錄檔中報告事件,為使用者提供如何解決問題的資訊。

備註

如果硬體子系統支援 SCSI 查詢數據和重要產品數據頁面 80 (裝置序號,) 和第 83 頁 (裝置身分識別) 指導方針,提供者就不需要修改 pLunInformation 陣列中的結構。

在任何情況下,AreLunsSupported 方法不應該修改 pLunInformation 陣列中任何VDS_LUN_INFORMATION結構m_rgInterconnects成員的值

如果提供者支援 pLunInformation 陣列中所有 LUN 的硬體陰影複製建立,它應該會在 pbIsSupported 參數指向的 BOOL 值中傳回 TRUE。 如果提供者不支援一或多個 LUN 的硬體陰影複製,則必須將此 BOOL 值設定為 FALSE

即使問題只是暫時的,提供者絕對不能同意建立陰影複製。 如果呼叫 AreLunsSupported 時,提供者無法使用一或多個 LUN 建立陰影複製,例如低資源,提供者必須將 BOOL 值設定為 FALSE

規格需求

需求
最低支援的用戶端 都不支援
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 vsprov.h

另請參閱

IVssHardwareSnapshotProvider

VDS_LUN_INFORMATION

_VSS_VOLUME_SNAPSHOT_ATTRIBUTES