共用方式為


ISyncMetadataStoreSerializer::DeserializeReplicaMetadata

將標準中繼資料檔案的內容還原序列化至中繼資料儲存服務存放區。當提供者版本變更時,選擇性地升級中繼資料存放區格式。

HRESULT DeserializeReplicaMetadata(
  IStream * pStream,
  DWORD dwExpectedProviderCompatibilityVersion,
  IProviderMetadataUpgradeCallback * pProviderUpgradeCallback);

參數

  • pStream
    [in] 包含特定複寫之序列化中繼資料的資料流。
  • dwExpectedProviderCompatibilityVersion
    [in] 預期會包含在標準中繼資料檔案中的提供者相容性版本。如果預期的版本與實際的版本不符,還原序列化會依照設計而失敗 (當 pProviderUpgradeCallback 是 NULL 時),或者呼叫 pProviderUpgradeCallback 方法 (當 pProviderUpgradeCallback 不是 NULL 時)。如需詳細資訊,請參閱從不同版本的元件存取中繼資料升級中繼資料存放區版本
  • pProviderUpgradeCallback
    [in] 因為序列化中繼資料中所包含的提供者版本與 dwExpectedProviderCompatibilityVersion 不同,所以必須升級中繼資料存放區格式時所呼叫的回呼方法。

傳回值

  • S_OK。

  • 如果序列化資料流中的最高滴答計數值小於或等於中繼資料存放區內的最高滴答計數值,則為 S_FALSE。在這種情況下,表示沒有其他中繼資料要還原序列化。

  • E_OUTOFMEMORY

  • E_POINTER

  • 如果呼叫沒有開啟之中繼資料存放區的方法,則為 SYNC_E_INVALIDOPERATION。

  • 如果交易無法用來還原序列化中繼資料,則為 SYNC_E_METADATA_ACTIVE_TRANSACTION_REQUIRED。

  • 如果在還原序列化期間發生任何檔案格式錯誤,或者檔案的內容與目標複寫的結構描述不相容,則為 SYNC_E_METADATA_STORE_DESERIALIZATION_ERROR。

  • 如果針對 dwExpectedProviderCompatibilityVersion 所指定的提供者相容性版本與標準中繼資料檔案中指定的版本不符,而且 pProviderUpgradeCallback 是 NULL,則為 SYNC_E_METADATA_STORE_DESERIALIZATION_PROVIDER_VERSION_MISMATCH。

備註

呼叫這個方法之前,必須符合三個條件:

如果其中一項條件不符,呼叫這個方法就會導致錯誤傳回值。

您可以在提供者版本變更時升級中繼資料結構描述的程序中使用這個方法。如需詳細資訊,請參閱升級中繼資料存放區版本

請參閱

參考

ISyncMetadataStoreSerializer 介面