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