ISyncMetadataStoreSerializer::SerializeReplicaMetadata
指定されたレプリカの Metadata Storage Service ストアの内容を、正規の形式で同期先ストリームにシリアル化します。
HRESULT SerializeReplicaMetadata(
const BYTE * pbReplicaId,
const ID_PARAMETERS * pIdParameters,
IStream * pStream,
SYNC_SERIALIZATION_VERSION serializationVersion);
パラメーター
パラメーター |
説明 |
pbReplicaId |
[in] メタデータをシリアル化する対象のレプリカの ID です。pIdParameters パラメーターでレプリカ ID の長さを固定長として指定した場合は、バッファー サイズを指定せずに pbReplicaId の ID 値のみを指定します。ただし、レプリカ ID が可変長の場合は、バッファーの最初の 2 バイトには渡されるバッファーの長さを含める必要があります。たとえば、レプリカ ID の長さを 16 バイトとする場合、バッファーの最初の 2 バイトの値は 18 である必要があります。 |
pIdParameters |
[in] メタデータがシリアル化されるプロバイダーの形式設定 (レプリカ ID の形式など) を指定する ID_PARAMETERS 構造体 です。 |
pStream |
[in] メタデータがシリアル化される同期先ストリームです。このメソッドは、現在のストリームの場所から順方向専用方式でストリームへ書き込みます。呼び出し元は、切り捨てられたファイルの先頭、または別の適切な開始位置にストリームを配置する必要があります。 |
serializationVersion |
[in] シリアル化されたメタデータが有効な Sync Framework のバージョンを指定する SYNC_SERIALIZATION_VERSION Enumeration 値です。たとえば、ネイティブなナレッジのシリアル化形式が Sync Framework 2.0 であっても、このパラメーターに指定された値が Sync Framework 1.0 の場合、ナレッジの値は 1.0 形式でシリアル化されます。2.0 の機能を使用するナレッジの値を 1.0 形式でシリアル化できない場合は、シリアル化に失敗し、SYNC_E_INCOMPATIBLE_SERIALIZATION_VERSION エラー コードが発生します。 |
戻り値
S_OK
E_POINTER
E_OUTOFMEMORY
E_INVALIDARG: 指定したレプリカ ID が関連付けられているメタデータ ストアに存在しない場合、または指定した ID_PARAMETERS がレプリカの形式に一致しない場合
SYNC_E_INVALIDOPERATION: メタデータ ストアが開いていない状態でこのメソッドを呼び出した場合
SYNC_E_METADATA_ACTIVE_TRANSACTION_REQUIRED: メタデータをシリアル化するトランザクションを使用できない場合
解説
このメソッドを呼び出す前に、次の 2 つの条件が満たされている必要があります。
メタデータ ストアを開く必要があります。ストアを開くには、ISqlSyncMetadataStore::OpenStore または ISqlSyncMetadataStore::CreateStore を呼び出します。
アクティブなトランザクションは、ISqlSyncMetadataStore オブジェクトで使用できる必要があります。トランザクションを開始するには、ISyncMetadataStore::BeginTransaction を呼び出します。
この条件のどちらかが満たされていない場合にこのメソッドを呼び出すと、エラー戻り値が発生します。