ISyncMetadataStoreSerializer::GetSerializedReplicaId

返回其元数据已序列化为指定的目标流的副本的副本 ID。

HRESULT GetSerializedReplicaId(
  IStream * pStream,
  BYTE * pbReplicaId,
  DWORD * pcbReplicaId,
  ID_PARAMETERS * pIdParameters);

参数

  • pStream
    [in] 包含特定副本的序列化元数据的流。
  • pbReplicaId
    [in, out, unique, size_is(*pcbReplicaId)] 返回与此元数据相关联的副本的 ID。
  • pcbReplicaId
    [in, out] 指定 pbReplicaId 中的字节数。如果 pbReplicaId 太小,则返回 pbReplicaId 必需的字节数;如果写入了数据,则返回写入到 pbReplicaId 中的字节数。
  • pIdParameters
    [out] 为提供程序指定格式设置(如副本 ID 格式)的 ID_PARAMETERS 结构,其中该提供程序的元数据进行了序列化。

返回值

  • S_OK。

  • E_OUTOFMEMORY。

  • E_POINTER。

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

  • 如果在反序列化期间遇到了任何文件格式错误,则返回值为 SYNC_E_METADATA_STORE_DESERIALIZATION_ERROR。

  • 如果 pbReplicaId 太小,则返回值为 HRESULT_FROM_WIN32(ERROR_MORE_DATA)。在这种情况下,pcbReplicaId 返回必需的字节数。

备注

在调用此方法之前,必须打开元数据存储区。通过调用 ISqlSyncMetadataStore::OpenStoreISqlSyncMetadataStore::CreateStore 可打开存储区。在未首先打开存储区的情况下调用此方法会导致出现错误返回值。

请参阅

参考

ISyncMetadataStoreSerializer 接口