IReplicaMetadata2::GetProviderVersion
获取对此元数据进行操作的提供程序的版本。
HRESULT GetProviderVersion(
ULONG * pulProviderVersion);
参数
- pulProviderVersion
[out, retval] 返回对此元数据进行操作的提供程序的版本。
返回值
S_OK
E_POINTER
备注
提供程序的版本用于协商与其他版本的提供程序的兼容性。请考虑以下情况:
有三个版本的提供程序(v1、v2 和 v3)。
在 v2 中,已对提供程序的自定义架构做出不兼容的变更。
v2 和 v3 兼容。
v3 提供程序可以将值 v2 指定给 IReplicaMetadata2::SetProviderVersion。然后 v2 或 v3 提供程序通过使用 GetProviderVersion,可以验证对元数据进行操作所需的提供程序版本。由于已将此值作为元数据存储区的规范格式的一部分进行序列化,因此也可以在对元数据进行反序列化时,通过为 ISyncMetadataStoreSerializer::DeserializeReplicaMetadata 的 dwExpectedProviderCompatibilityVersion 参数指定值 v2 来验证提供程序版本。v1 提供程序需要的值为 v1,由于元数据与 v1 不兼容,因此默认情况下反序列化应会失败。
尽可能使用最低版本能够确保与同一提供程序的其他版本之间的兼容性达到最高级别。