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 とは互換性がないためです。
同じプロバイダーの他のバージョンとの互換性レベルを最大限に確保するには、できるだけ最小バージョンを使用します。