次の方法で共有


IReplicaMetadata2::SetProviderVersion

このメタデータを処理するプロバイダーのバージョンを設定します。

構文

HRESULT SetProviderVersion(
  ULONG ulProviderVersion);

パラメーター

  • ulProviderVersion
    [in] このメタデータを処理するプロバイダーのバージョンです。

戻り値

  • S_OK

  • E_OUTOFMEMORY

説明

プロバイダーのバージョンは、他のバージョンのプロバイダーとの互換性をネゴシエートするために使用します。以下のシナリオについて考えてみます。

  • v1、v2、および v3 という 3 つのプロバイダー バージョンがあります。

  • v2 では、プロバイダーのカスタム スキーマに対して互換性のない変更が加えられました。

  • v2 と v3 は互換性があります。

v3 のプロバイダーでは、SetProviderVersion に値 v2 を指定できます。その後、v2 または v3 のプロバイダーでは、IReplicaMetadata2::GetProviderVersion を使用して、メタデータの処理に必要なプロバイダーのバージョンを確認できます。この値はメタデータ ストアの正規の形式の一部としてシリアル化されるため、ISyncMetadataStoreSerializer::DeserializeReplicaMetadata の dwExpectedProviderCompatibilityVersion パラメーターに値 v2 を指定して、メタデータのシリアル化を解除する際にプロバイダーのバージョンを確認することもできます。v1 のプロバイダーでは値 v1 が予想されるため、仕様上、逆シリアル化は失敗します。これは、このメタデータが v1 とは互換性がないためです。

同じプロバイダーの他のバージョンとの互換性レベルを最大限に確保するには、できるだけ最小バージョンを使用します。

関連項目

その他の技術情報

IReplicaMetadata2 インターフェイス