ISyncMetadataStoreSerializer::SerializeReplicaMetadata

对于指定的副本,将元数据存储服务存储区的内容以规范格式序列化到一个目标流。

HRESULT SerializeReplicaMetadata(
  const BYTE * pbReplicaId,
  const ID_PARAMETERS * pIdParameters,
  IStream * pStream, 
  SYNC_SERIALIZATION_VERSION serializationVersion);

参数

参数

说明

pbReplicaId

[in] 应序列化其元数据的副本的 ID。如果在 pIdParameters 参数中将副本 ID 指定为具有固定长度,则将仅为 pbReplicaId 指定 ID 值,而不指定缓冲区大小。但是,如果副本 ID 为可变长度,则缓冲区的前两个字节必须包括传入的缓冲区的长度。例如,在特定情况下,如果副本 ID 的长度为 16 个字节,则缓冲区中的前两个字节的值应为 18。

pIdParameters

[in] 一个 ID_PARAMETERS 结构,用于为序列化其元数据的提供程序指定格式设置,如副本 ID 格式。

pStream

[in] 将元数据序列化到的目标流。此方法从当前流位置以只进方式写入流。调用方必须将流放在截断文件的开头或其他适合的起始位置。

serializationVersion

[in] 一个 SYNC_SERIALIZATION_VERSION Enumeration 指定对序列化的元数据有效的 Sync Framework 版本。例如,如果本机知识序列化格式为 Sync Framework 2.0,但为此参数提供的值为 Sync Framework 1.0,则以 1.0 格式序列化知识值。如果知识值使用任何无法以 1.0 格式序列化的 2.0 功能,则序列化失败,错误代码为 SYNC_E_INCOMPATIBLE_SERIALIZATION_VERSION。

返回值

  • S_OK。

  • E_POINTER。

  • E_OUTOFMEMORY。

  • 如果关联的元数据存储区中不存在指定副本 ID 或者指定的 ID_PARAMETERS 与用于副本的格式不匹配,则返回值为 E_INVALIDARG。

  • 如果在调用方法时没有打开的元数据存储区,则返回值为 SYNC_E_INVALIDOPERATION。

  • 如果要在其中序列化元数据的事务不可用,则返回值为 SYNC_E_METADATA_ACTIVE_TRANSACTION_REQUIRED。

备注

调用此方法之前必须满足两个条件:

在以上任何条件均不满足时调用此方法会产生错误返回值。

请参阅

参考

ISyncMetadataStoreSerializer 接口