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。
备注
调用此方法之前必须满足两个条件:
必须打开元数据存储区。通过调用 ISqlSyncMetadataStore::OpenStore 或 ISqlSyncMetadataStore::CreateStore 可打开存储区。
活动事务必须对 ISqlSyncMetadataStore 对象可用。通过调用 ISyncMetadataStore::BeginTransaction 可启动事务。
在以上任何条件均不满足时调用此方法会产生错误返回值。