Compartilhar via


ISyncFilterInfo::Serialize

Serializa os dados de filtro para uma matriz de bytes.

HRESULT Serialize( 
  BYTE *pbBuffer,
  DWORD *pcbBuffer);

Parâmetros

  • pbBuffer
    [in, out, size_is(*pcbBuffer)] Retorna as informações de filtro serializadas. Define esse valor como NULL para solicitar o tamanho necessário do buffer.
  • pcbBuffer
    [in, out] Especifica o número de bytes em pbBuffer. Retorna o número de bytes necessários para serializar o filtro quando pcbBuffer for muito pequeno, ou o número de bytes gravados.

Valor de retorno

  • S_OK.

  • E_INVALIDARG.

  • 0x800700EA (HRESULT_FROM_WIN32(ERROR_MORE_DATA)) quando pbBuffer for NULL ou pcbBuffer for muito pequeno. Nesse caso, o número de bytes necessários para serializar o filtro é retornado em pcbBuffer.

Formato de serialização

As informações de filtro serializadas contidas em pbBuffer são armazenadas em forma compacta, sem preenchimento, em ordem de byte big-endian. As informações de filtro serializadas contêm os elementos abaixo, na ordem a seguir.

  1. Uma seção de cabeçalho. A seção de cabeçalho contém os elementos a seguir.

    Tipo de dados Comprimento em bytes Descrição

    ULONGLONG

    8

    A versão do formato de serialização das informações de filtro. Esse valor será 2 quando o filtro for um filtro de itens ou um filtro de unidades de alteração. Esse valor será 3 quando o filtro for um filtro personalizado ou um filtro combinado.

    ULONG

    4

    Os sinalizadores associados às informações de filtro. Contém valores do conjunto de sinalizadores SYNC_FILTER_INFO_FLAG.

  2. Quando os sinalizadores incluírem SYNC_FILTER_INFO_FLAG_ITEM_LIST ou SYNC_FILTER_INFO_FLAG_CHANGE_UNIT_LIST, os dados de filtro a seguir serão serializados.

    Tipo de dados Comprimento em bytes Descrição

    BOOL

    1

    Indica se as IDs de unidade de alteração contidas nas informações de filtro têm 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 unidade de alteração de comprimento fixo, ou o comprimento máximo das IDs de comprimento variável.

    ULONG

    4

    O número de IDs de unidade de alteração contidas nas informações de filtro.

    As informações de filtro contêm uma lista de IDs de unidade de alteração com o comprimento da lista igual ao valor contido no ULONG anterior.

    Cada ID de unidade de alteração contém os elementos a seguir.

    Quando as IDs de unidade de alteração têm comprimento fixo.

    Tipo de dados Comprimento em bytes Descrição

    Sequência de bytes

    O comprimento especificado no formato da ID de unidade de alteração.

    A ID da unidade de alteração de comprimento fixo.

    Ou, quando as IDs de unidade de alteração 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 da unidade de alteração de comprimento variável.

  3. Quando os sinalizadores incluírem SYNC_FILTER_INFO_FLAG_CUSTOM, os dados de filtro a seguir serão serializados.

    Tipo de dados Comprimento em bytes Descrição

    Sequência de bytes

    Determinado pelo filtro personalizado.

    Os dados do filtro serializados gravados no fluxo pelo método ISyncFilter::Serialize.

  4. Quando os sinalizadores incluírem SYNC_FILTER_INFO_COMBINED, os dados de filtro a seguir serão serializados.

    Tipo de dados Comprimento em bytes Descrição

    ULONG

    4

    O comprimento, em bytes, do primeiro objeto de informações de filtro na combinação.

    Sequência de bytes

    O comprimento especificado no ULONG anterior.

    As informações de filtro serializado do primeiro filtro, no formato especificado por este documento.

    ULONG

    4

    O comprimento, em bytes, do segundo objeto de informações de filtro na combinação.

    Sequência de bytes

    O comprimento especificado no ULONG anterior.

    As informações de filtro serializado do segundo filtro, no formato especificado por este documento.

Consulte também

Referência

Interface ISyncFilterInfo