ISyncMetadataStoreSerializer::SerializeReplicaMetadata
Serializa, para la réplica especificada, el contenido de un almacén de Metadata Storage Service en una secuencia de destino con un formato canónico.
HRESULT SerializeReplicaMetadata(
const BYTE * pbReplicaId,
const ID_PARAMETERS * pIdParameters,
IStream * pStream,
SYNC_SERIALIZATION_VERSION serializationVersion);
Parámetros
Parámetro |
Descripción |
pbReplicaId |
[in] Identificador de la réplica para la que se deben serializar metadatos. Si el identificador de réplica se especifica como elemento de longitud fija en el parámetro pIdParameters, especifique únicamente el valor de identificador en pbReplicaId, sin tamaño de búfer. Sin embargo, si el identificador de réplica es de longitud variable, los dos primeros bytes del búfer deben incluir la longitud del búfer que se pasa. Por ejemplo, si la longitud del identificador de réplica es de 16 bytes en un caso determinado, el valor de los dos primeros bytes del búfer debe ser 18. |
pIdParameters |
[in] Estructura ID_PARAMETERS que especifica la configuración de formato, como el formato del identificador de réplica, para el proveedor cuyos metadatos se serializan. |
pStream |
[in] Secuencia de destino en la que se serializan los metadatos. Este método escribe en la secuencia en modo de solo avance a partir de la ubicación actual de la secuencia. El autor de las llamadas debe colocar la secuencia al inicio de un archivo truncado o en otra posición inicial adecuada. |
serializationVersion |
[in] Valor de SYNC_SERIALIZATION_VERSION Enumeration que especifica la versión de Sync Framework para la que son válidos los metadatos serializados. Por ejemplo, si el formato de serialización de conocimiento nativo es Sync Framework 2.0, pero el valor proporcionado por este parámetro es Sync Framework 1.0, los valores de conocimiento se serializan en el formato de 1.0. Si los valores del conocimiento utilizan características de la versión 2.0 que no se pueden serializar con el formato de la versión 1.0, se produce un error en la serialización con un código de error SYNC_E_INCOMPATIBLE_SERIALIZATION_VERSION. |
Valor devuelto
S_OK
E_POINTER
E_OUTOFMEMORY
E_INVALIDARG si el identificador de réplica especificado no existe en el almacén de metadatos asociado o si el valor de ID_PARAMETERS especificado no coincide con los formatos utilizados en la réplica.
SYNC_E_INVALIDOPERATION si se llama al método sin un almacén de metadatos abierto.
SYNC_E_METADATA_ACTIVE_TRANSACTION_REQUIRED si no está disponible una transacción desde la que serializar los metadatos.
Notas
Se deben cumplir dos condiciones antes de llamar a este método:
El almacén de metadatos debe estar abierto. Para abrir un almacén, llame a ISqlSyncMetadataStore::OpenStore o ISqlSyncMetadataStore::CreateStore.
Debe estar disponible una transacción activa en el objeto ISqlSyncMetadataStore. Para iniciar una transacción, llame a ISyncMetadataStore::BeginTransaction.
Si se llama a este método cuando no se cumple una de estas condiciones, el valor devuelto es un error.