IReplicaKeyMap::Serialize
Serializa os dados do mapa de chave de réplica para uma matriz de bytes.
HRESULT Serialize(
BYTE *pbReplicaKeyMap,
DWORD *pcbReplicaKeyMap);
Parâmetros
- pbReplicaKeyMap
[in, out, unique, size_is(*pcbReplicaKeyMap)] A matriz de bytes que recebe os dados serializados.
- pcbReplicaKeyMap
[in, out] Especifica o número de bytes em pbReplicaKeyMap. Retorna o número de bytes necessários para serializar os dados do mapa de chave de réplica quando pbReplicaKeyMap é muito pequeno ou retorna o número de bytes gravados.
Valor de retorno
S_OK.
E_INVALIDARG quando uma ID ou chave de réplica armazenada no mapa não é válida.
E_POINTER.
E_OUTOFMEMORY.
HRESULT_FROM_WIN32(ERROR_MORE_DATA) quando pbReplicaKeyMap é muito pequeno. Nesse caso, o número necessário de bytes é retornado em pcbReplicaKeyMap.
Formato de serialização
O mapa de chave de réplica serializada contido em pbReplicaKeyMap é armazenado de forma compacta, em ordem de byte big-endian.
O mapa de chave de réplica serializada contém os seguintes elementos nesta ordem:
Tipo de dados | Comprimento em bytes | Descrição |
---|---|---|
ULONG |
4 |
A assinatura do mapa de chave de réplica. Esse valor é sempre 5. |
BOOL |
1 |
Indica se as IDs de réplica contidas no mapa de chave de réplica são de comprimento fixo ou variável. Esse valor será 0 se as IDs tiverem comprimento fixo; ou 1 se tiverem comprimento variável. |
USHORT |
2 |
O comprimento, em bytes, das IDs de réplica de comprimento fixo, ou o comprimento máximo das IDs de comprimento variável. |
ULONG |
4 |
O número de entradas no mapa de chave de réplica. |
A seção de mapa de chave de réplica contém uma lista de entradas no mapa de chave de réplica, com o número de entradas igual ao valor contido no ULONG anterior.
Quando as IDs de réplica têm comprimento fixo:
Tipo de dados | Comprimento em bytes | Descrição |
---|---|---|
Sequência de bytes |
O comprimento especificado no formato de ID da réplica. |
A ID de réplica de comprimento fixo. |
Ou, quando as IDs de réplica tiverem comprimento variável:
Tipo de dados | Comprimento em bytes | Descrição |
---|---|---|
USHORT |
2 |
O comprimento, em bytes, da ID de comprimento variável. Esse comprimento inclui os dois bytes para o USHORT que contém o comprimento, mais os bytes que contêm a ID real. |
Sequência de bytes |
O comprimento especificado no USHORT anterior. |
A ID de réplica de comprimento variável. |