ISyncMetadataStoreSerializer::SerializeReplicaMetadata
針對指定的複寫,將中繼資料儲存服務存放區的內容序列化至採用標準格式的目的地資料流。
HRESULT SerializeReplicaMetadata(
const BYTE * pbReplicaId,
const ID_PARAMETERS * pIdParameters,
IStream * pStream,
SYNC_SERIALIZATION_VERSION serializationVersion);
參數
參數 |
描述 |
pbReplicaId |
[in] 應該序列化中繼資料的複寫識別碼。如果將複寫識別碼指定為在 pIdParameters 參數中具有固定長度,僅指定 pbReplicaId 的識別碼值,而沒有緩衝區大小。不過,如果複寫識別碼是一個可變長度,緩衝區的前兩個位元組必須包含傳入的緩衝區長度。例如,如果複寫識別碼在特定情況下的長度為 16 個位元組,緩衝區中的前兩個位元組值應該為 18。 |
pIdParameters |
[in] 針對其中繼資料已序列化的提供者指定格式設定的 ID_PARAMETERS 結構,例如複寫識別碼格式。 |
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_PARAMETERS 與複寫所使用的格式不符,為 E_INVALIDARG。
如果呼叫沒有開啟之中繼資料存放區的方法,為 SYNC_E_INVALIDOPERATION。
如果交易無法用來序列化中繼資料,則為 SYNC_E_METADATA_ACTIVE_TRANSACTION_REQUIRED。
備註
呼叫這個方法之前,必須符合兩個條件:
您必須開啟中繼資料存放區。請透過呼叫 ISqlSyncMetadataStore::OpenStore 或 ISqlSyncMetadataStore::CreateStore 開啟存放區。
使用中交易必須存在 ISqlSyncMetadataStore 物件上。請透過呼叫 ISyncMetadataStore::BeginTransaction 啟動交易。
如果其中一項條件不符,呼叫這個方法就會導致錯誤傳回值。