다음을 통해 공유


ISyncMetadataStoreSerializer::DeserializeReplicaMetadata

정식 메타데이터 파일의 내용을 Metadata Storage Service 저장소로 역직렬화합니다. 공급자 버전이 변경될 경우 필요에 따라 메타데이터 저장소 형식을 업그레이드할 수도 있습니다.

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

매개 변수

  • pStream
    [in] 특정 복제본에 대한 직렬화된 메타데이터를 포함하는 스트림입니다.
  • dwExpectedProviderCompatibilityVersion
    [in] 정식 메타데이터 파일에 포함될 것으로 예상되는 공급자 호환성 버전입니다. 예상 버전이 실제 버전과 일치하지 않는 경우 pProviderUpgradeCallback이 NULL이면 역직렬화가 기본적으로 실패합니다. pProviderUpgradeCallback이 NULL이 아니면 pProviderUpgradeCallback 메서드가 호출됩니다. 자세한 내용은 버전이 다른 구성 요소의 메타데이터 액세스메타데이터 저장소 버전 업그레이드를 참조하십시오.
  • 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 인터페이스