次の方法で共有


ISyncMetadataStoreSerializer::DeserializeReplicaMetadata

正規のメタデータ ファイルのコンテンツを、Metadata Storage Service ストアにシリアル化解除します。オプションで、プロバイダーのバージョンが変更されるときにメタデータ ストアの形式をアップグレードします。

構文

HRESULT DeserializeReplicaMetadata(
  IStream * pStream,
  DWORD dwExpectedProviderCompatibilityVersion,
  IProviderMetadataUpgradeCallback * pProviderUpgradeCallback);

パラメーター

  • pStream
    [in] 特定のレプリカのシリアル化されたメタデータを含むストリームです。

  • dwExpectedProviderCompatibilityVersion
    [in] 正規のメタデータ ファイルに含まれることが予想されるプロバイダー互換性バージョンです。予想したバージョンが実際のバージョンと一致しない場合は、pProviderUpgradeCallback が NULL であったり、pProviderUpgradeCallback が NULL でないときに pProviderUpgradeCallback メソッドが呼び出さたりすると、仕様上、シリアル化解除は失敗します。詳細については、「バージョンが異なるコンポーネントのメタデータへのアクセス」および「メタデータ ストアのアップグレード」を参照してください。

  • pProviderUpgradeCallback
    [in] シリアル化されたメタデータに含まれるプロバイダー バージョンが dwExpectedProviderCompatibilityVersion とは異なることが原因でメタデータ ストアの形式をアップグレードする必要がある場合に呼び出されるコールバック メソッドです。

戻り値

  • S_OK

  • S_FALSE (シリアル化ストリームのティック数の最大値が、メタデータ ストアのティック数の最大値以下の場合。この場合、シリアル化を解除する追加のメタデータはありません。)

  • E_OUTOFMEMORY

  • E_POINTER

  • SYNC_E_INVALIDOPERATION (開かれたメタデータ ストアなしでメソッドが呼び出された場合)

  • SYNC_E_METADATA_ACTIVE_TRANSACTION_REQUIRED (メタデータのシリアル化を解除するトランザクションを使用できない場合)

  • SYNC_E_METADATA_STORE_DESERIALIZATION_ERROR (シリアル化解除中にファイル形式のエラーが発生した場合、またはファイルの内容と対象となるレプリカのスキーマに互換性がない場合)

  • SYNC_E_METADATA_STORE_DESERIALIZATION_PROVIDER_VERSION_MISMATCH (dwExpectedProviderCompatibilityVersion に指定されたプロバイダー互換性バージョンが、正規のメタデータ ファイルで指定されたバージョンと一致せず、pProviderUpgradeCallback が NULL である場合)

説明

このメソッドを呼び出す前に、次の 3 つの条件が満たされている必要があります。

この条件のいずれかが満たされていない場合にこのメソッドを呼び出すと、戻り値がエラーになります。

このメソッドは、プロバイダーのバージョンが変更される際にメタデータ スキーマをアップグレードするプロシージャの一部として使用できます。詳細については、「メタデータ ストアのアップグレード」を参照してください。

関連項目

その他の技術情報

ISyncMetadataStoreSerializer インターフェイス