Compartilhar via


IProviderSyncServices::CreateReplicaKeyMap

Cria uma IReplicaKeyMap para uma réplica especificada.

HRESULT CreateReplicaKeyMap( 
  const BYTE *pbReplicaId,
  IReplicaKeyMap **ppReplicaKeyMap);

Parâmetros

  • pbReplicaId
    [in] A ID da réplica que possui esse mapa de chave de réplica.
  • ppReplicaKeyMap
    [out] Retorna o objeto do mapa da chave da réplica recém-criado.

Valor de retorno

  • S_OK

  • E_OUTOFMEMORY

  • E_POINTER

  • SYNC_E_INVALID_OPERATION quando esse objeto não é inicializado.

  • SYNC_E_ID_FORMAT_MISMATCH quando a ID especificada por pbReplicaId não está no formato especificado pelo esquema de formato de ID usado para inicializar esse objeto.

Comentários

O objeto do mapa da chave da réplica mapeia entre IDs de réplica e chaves de 4 bytes e é necessário para criar o conhecimento de sincronização. Devido às ocorrências repetidas de IDs de réplica nos metadados de sincronização, o Sync Framework usa uma tabela para mapear IDs de réplica até chaves de 4 byte e usa as chaves de réplica em todos os metadados de sincronização em vez de IDs de réplica.

Exemplo

O exemplo a seguir usa IProviderSyncServices para criar vários objetos. O exemplo armazena os objetos para uso posterior.

IProviderSyncServices* pProvSvc;
hr = GetProviderSyncServices(&c_idParams, &pProvSvc);
if (SUCCEEDED(hr))
{
    IReplicaKeyMap* pReplicaKeyMap = NULL;
    hr = pProvSvc->CreateReplicaKeyMap((BYTE*)&guidReplicaID, &pReplicaKeyMap);
    if (SUCCEEDED(hr))
    {
        hr = SetReplicaKeyMap(pReplicaKeyMap);
        if (SUCCEEDED(hr))
        {
            ISyncKnowledge* pKnowledge = NULL;
            hr = pProvSvc->CreateSyncKnowledge(0, pReplicaKeyMap, &pKnowledge);
            if (SUCCEEDED(hr))
            {
                hr = SetKnowledge(pKnowledge);
                if (SUCCEEDED(hr))
                {
                    IForgottenKnowledge* pForgottenKnowledge = NULL;
                    hr = pProvSvc->CreateForgottenKnowledge(pReplicaKeyMap, &pForgottenKnowledge);
                    if (SUCCEEDED(hr))
                    {
                        hr = SetForgottenKnowledge(pForgottenKnowledge);

                        pForgottenKnowledge->Release();
                    }
                }

                pKnowledge->Release();
            }
        }

        pReplicaKeyMap->Release();
    }
    pProvSvc->Release();
}

Consulte também

Referência

Interface IProviderSyncServices