次の方法で共有


IReplicaMetadata2::GetProviderVersion

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

HRESULT GetProviderVersion(
  ULONG * pulProviderVersion);

パラメーター

  • pulProviderVersion
    [out, retval] このメタデータを処理するプロバイダーのバージョンを返します。

戻り値

  • S_OK

  • E_POINTER

解説

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

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

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

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

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

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

参照

リファレンス

IReplicaMetadata2 インターフェイス