Freigeben über


ISyncChangeBatchBase2::SerializeWithOptions

Serialisiert die Daten des Änderungsbatchobjekts auf Grundlage der angegebenen Version und Serialisierungsoptionen in ein Bytearray.

HRESULT SerializeWithOptions(
  SYNC_SERIALIZATION_VERSION targetFormatVersion,
  DWORD dwFlags,
  BYTE * pbBuffer,
  DWORD * pdwSerializedSize);

Parameter

Ausdruck

Definition

targetFormatVersion

[in] Der serialisierte Änderungsbatch ist mit dieser Version kompatibel.

dwFlags

[in] Reserviert. Muss 0 sein.

pbBuffer

[in, out, unique, size_is(*pdwSerializedSize)] Die serialisierten Daten des Änderungsbatchobjekts werden in diesen Puffer serialisiert.

pdwSerializedSize

[in, out] Gibt die Anzahl der Bytes in pBuffer an. Gibt entweder die Anzahl der zum Serialisieren der Änderungsbatchdaten erforderlichen Bytes zurück, wenn pBuffer zu klein ist, oder die Anzahl der geschriebenen Bytes.

Rückgabewert

  • S_OK.

  • E_INVALIDARG, wenn dwFlags nicht 0 ist oder wenn die von targetFormatVersion angegebene Version mit den Daten des Änderungsbatchobjekts nicht kompatibel ist.

  • E_OUTOFMEMORY.

  • E_POINTER.

  • HRESULT_FROM_WIN32(ERROR_MORE_DATA), wenn pBuffer zu klein ist. In dieser Situation wird in pdwSerializedSize die erforderliche Byteanzahl zurückgegeben.

  • SYNC_E_INVALID_OPERATION, wenn der Änderungsbatch eine Gruppe enthält, die gestartet, jedoch nicht beendet wurde.

  • SYNC_E_INVALID_VERSION, wenn der Wert von targetFormatVersion höher als die Version des Objekts ist oder das Objekt Elemente enthält, die mit targetFormatVersion nicht kompatibel sind.

Hinweise

Der targetFormatVersion-Wert bestimmt das Format der serialisierten Änderungsbatchdaten. Wenn SYNC_SERIALIZATION_VERSION_V1 angegeben wird, ist das serialisierte Format mit Komponenten von Sync Framework 1.0 und höheren Versionen kompatibel. Wenn SYNC_SERIALIZATION_VERSION_V2 angegeben wird, ist das serialisierte Format mit Komponenten von Sync Framework 2.0 kompatibel. Wenn SYNC_SERIALIZATION_VERSION_V2 angegeben wird und das Änderungsbatchobjekt nicht mit Sync Framework 1.0 kompatible Elemente enthält, wird E_INVALIDARG oder SYNC_E_INVALID_OPERATION zurückgegeben.

Hinweis

Das Serialisieren auf das Sync Framework 1.0-Format ist weniger effizient als auf das Sync Framework 2.0-Format. Wenn es keinen speziellen Bedarf für das Sync Framework 1.0-Format gibt, sollte das Sync Framework 2.0-Format verwendet werden.

Serialisierungsformat

Der in pbBuffer enthaltene serialisierte Änderungsbatch wird in kompakter Form ohne Leerstellen in Big-Endian-Bytereihenfolge gespeichert. Der serialisierte Änderungsbatch enthält folgende Elemente in folgender Reihenfolge.

  1. Einen Headerabschnitt. Der Headerabschnitt enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONGLONG

    8

    Die Version des Serialisierungsformats des Änderungsbatchs. Dieser Wert beträgt 3, wenn targetFormatVersion SYNC_SERIALIZATION_VERSION_V1 ist, 4, wenn targetFormatVersion SYNC_SERIALIZATION_VERSION_V2 ist, und 5, wenn targetFormatVersion SYNC_SERIALIZATION_VERSION_V3 ist.

  2. Ein Filterinformationsabschnitt, wenn targetFormatVersion SYNC_SERIALIZATION_VERSION_V2 ist und Filterinformationen im Änderungsbatch vorhanden sind. Der Filterinformationsabschnitt enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die Länge des Filterinformationsabschnitts in Bytes.

    Der Rest des Filterinformationsabschnitts weist das unter ISyncFilterInfo::Serialize beschriebene Format auf.

  3. Ein Zielwissensabschnitt. Der Zielwissensabschnitt enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die Länge des Zielwissensabschnitts in Bytes. Diese Länge beträgt möglicherweise 0. In diesem Fall folgt kein Zielwissen.

    Bytefolge

    Die im vorherigen ULONG angegebene Länge.

    Wenn targetFormatVersion SYNC_SERIALIZATION_VERSION_V1 ist, weist das Zielwissen das von ISyncKnowledge::Serialize beschriebene Format auf. Andernfalls weist das Zielwissen das von ISyncKnowledge2::SerializeWithOptions beschriebene Format auf. Die serialisierte Replikatschlüsselzuordnung ist immer im serialisierten Zielwissen enthalten.

  4. Ein Abschnitt zu vergessenem Quellwissen. Der Abschnitt zu vergessenem Quellwissen enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die Länge des Abschnitts zu vergessenem Quellwissen in Bytes. Diese Länge beträgt möglicherweise 0. In diesem Fall folgt kein vergessenes Quellwissen.

    Bytefolge

    Die im vorherigen ULONG angegebene Länge.

    Wenn targetFormatVersion SYNC_SERIALIZATION_VERSION_V1 ist, weist das vergessene Quellwissen das von ISyncKnowledge::Serialize beschriebene Format auf. Andernfalls weist das vergessene Quellwissen das von ISyncKnowledge2::SerializeWithOptions beschriebene Format auf. Die serialisierte Replikatschlüsselzuordnung ist immer im serialisierten vergessenen Quellwissen enthalten.

  5. Ein Abschnitt mit der Quellfilter-Schlüsselzuordnung, wenn targetFormatVersion SYNC_SERIALIZATION_VERSION_V3 ist und Informationen zur Quellfilter-Schlüsselzuordnung vorhanden sind. Der Abschnitt mit der Quellfilter-Schlüsselzuordnung enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die Länge des Abschnitts mit der Quellfilter-Schlüsselzuordnung in Bytes. Diese Länge kann 0 betragen. In diesem Fall folgt keine Quellfilter-Schlüsselzuordnung.

    USHORT

    2

    Die Version des Serialisierungsformats der Filterschlüsselzuordnung. Dieser Wert ist SYNC_SERIALIZATION_VERSION_V3.

    ULONG

    4

    Die Anzahl von Filtern in der Filterschlüsselzuordnung.

    Jeder Filter in der Filterschlüsselzuordnung enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die Länge des Filters in Bytes.

    Bytefolge

    Die im vorherigen ULONG angegebene Länge.

    Die serialisierten Filterdaten, die von der ISyncFilter::Serialize-Methode in den Stream geschrieben wurden.

  6. Ein Anwendungswissensabschnitt. Der Anwendungswissensabschnitt enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die Anzahl von Anwendungswissensobjekten, die in den serialisierten Daten enthalten sind. Diese Zahl beträgt möglicherweise 0. In diesem Fall folgt kein Anwendungswissen.

    Jedes Anwendungswissen enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die Länge des Anwendungswissens in Bytes.

    Bytefolge

    Die im vorherigen ULONG angegebene Länge.

    Wenn targetFormatVersion SYNC_SERIALIZATION_VERSION_V1 ist, weist das Anwendungswissen das von ISyncKnowledge::Serialize beschriebene Format auf. Andernfalls weist das Anwendungswissen das im ISyncKnowledge2::SerializeWithOptions beschriebene Format auf. Die serialisierte Replikatschlüsselzuordnung ist immer im serialisierten Anwendungswissen enthalten.

  7. Ein Changesetabschnitt. Der Changesetabschnitt enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die Anzahl von Änderungsobjekten, die in den serialisierten Daten enthalten sind. Diese Zahl ist möglicherweise 0. In diesem Fall folgen keine Änderungen.

    Jede Änderung enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die Länge der Änderungsdaten in Bytes.

    ULONGLONG

    8

    Die Signatur des Serialisierungsformats des Änderungsobjekts. Dieser Wert beträgt 5, wenn targetFormatVersion SYNC_SERIALIZATION_VERSION_V1 oder SYNC_SERIALIZATION_VERSION_V2 ist, und 6, wenn targetFormatVersion SYNC_SERIALIZATION_VERSION_V3 ist.

    Bei Replikat-IDs mit fester Länge.

    Datentyp Länge in Bytes Beschreibung

    Bytefolge

    Die Länge wird im Format der Replikat-ID angegeben.

    Die Replikat-ID mit fester Länge.

    Bei Replikat-IDs mit variabler Länge.

    Datentyp Länge in Bytes Beschreibung

    USHORT

    2

    Die Länge der ID mit variabler Länge in Bytes. Diese Länge schließt die zwei Bytes für den USHORT ein, der die Länge enthält, sowie die Bytes, die die tatsächliche ID enthalten.

    Bytefolge

    Die im vorherigen USHORT angegebene Länge.

    Die Replikat-ID mit variabler Länge.

    Jede Änderung enthält folgende zusätzliche Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Der Replikatschlüssel, durch den identifiziert wird, welches Replikat diese Änderung vorgenommen hat.

    ULONGLONG

    8

    Die Taktanzahl des Replikats, das diese Änderung vorgenommen hat.

    ULONG

    4

    Reserviert. Dieser Wert kann ignoriert werden.

    ULONGLONG

    8

    Reserviert. Dieser Wert kann ignoriert werden.

    ULONG

    4

    Der Replikatschlüssel, der durch den das Replikat identifiziert wird, das dieses Element erstellt hat.

    ULONGLONG

    8

    Die Taktanzahl des Replikats, das dieses Element erstellt hat.

    Bei Element-IDs mit fester Länge.

    Datentyp Länge in Bytes Beschreibung

    Bytefolge

    Die Länge wird im Format der Element-ID angegeben.

    Die Element-ID mit fester Länge.

    Bei Element-IDs mit variabler Länge.

    Datentyp Länge in Bytes Beschreibung

    USHORT

    2

    Die Länge der ID mit variabler Länge in Bytes. Diese Länge schließt die zwei Bytes für den USHORT ein, der die Länge enthält, sowie die Bytes, die die tatsächliche ID enthalten.

    Bytefolge

    Die im vorherigen USHORT angegebene Länge.

    Die Element-ID mit variabler Länge.

    Wenn targetFormatVersion SYNC_SERIALIZATION_VERSION_V3 oder höher ist, enthält jede Änderung die folgenden zusätzlichen Elemente.

    Datentyp Länge in Bytes Beschreibung

    BOOL

    1

    Gibt an, ob eine Gewinner-ID in den serialisierten Daten vorhanden ist. Der Wert 0 gibt an, dass keine Gewinner-ID folgt. Der Wert 1 gibt an, dass eine Gewinner-ID folgt.

    Bei Element-IDs mit fester Länge.

    Datentyp Länge in Bytes Beschreibung

    Bytefolge

    Die Länge wird im Format der Element-ID angegeben.

    Die Gewinner-ID mit fester Länge.

    Bei Element-IDs mit variabler Länge.

    Datentyp Länge in Bytes Beschreibung

    USHORT

    2

    Die Länge der ID mit variabler Länge in Bytes. Diese Länge schließt die zwei Bytes für den USHORT ein, der die Länge enthält, sowie die Bytes, die die tatsächliche ID enthalten.

    Bytefolge

    Die im vorherigen USHORT angegebene Länge.

    Die Gewinner-ID mit variabler Länge.

    Jede Änderung enthält folgende zusätzliche Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die mit der Änderung verknüpften Flags. Dies ist eine Kombination der SYNC_CHANGE_FLAG-Flags.

    ULONG

    4

    Die geschätzte Arbeit für die Änderung.

    USHORT

    2

    Reserviert. Dieser Wert ist immer 0.

    BYTE

    1

    Gibt an, ob das dieser Änderung zugeordnete erlangte Wissen auf dieses Element projiziert wird. Der Wert 0 gibt an, dass das erlangte Wissen nicht projiziert wird. Der Wert 1 gibt an, dass das erlangte Wissen projiziert wird.

    ULONG

    4

    Ein Indexeintrag in der Anwendungswissensliste, die in diesen serialisierten Daten enthalten ist. Dieser Wert beträgt möglicherweise 0, wodurch angegeben wird, dass dieser Änderung kein Anwendungswissen zugeordnet ist.

    ULONG

    4

    Die Anzahl von Änderungseinheiten, die in dieser Änderung enthalten sind. Dieser Wert beträgt möglicherweise 0. In diesem Fall folgen keine Änderungseinheiten.

    Die Änderung enthält eine Liste von Änderungseinheiten. Die Anzahl der Änderungseinheiten entspricht dem im vorherigen ULONG enthaltenen Wert.

    Jede Änderungseinheit enthält die folgenden Elemente.

    Bei Änderungseinheit-IDs mit fester Länge.

    Datentyp Länge in Bytes Beschreibung

    Bytefolge

    Die im Format der Änderungseinheit-ID angegebene Länge.

    Die Änderungseinheit-ID mit fester Länge.

    Bei Änderungseinheit-IDs mit variabler Länge.

    Datentyp Länge in Bytes Beschreibung

    USHORT

    2

    Die Länge der ID mit variabler Länge in Bytes. Diese Länge schließt die zwei Bytes für den USHORT ein, der die Länge enthält, sowie die Bytes, die die tatsächliche ID enthalten.

    Bytefolge

    Die im vorherigen USHORT angegebene Länge.

    Die Änderungseinheit-ID mit variabler Länge.

    Jede Änderungseinheit enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Der Replikatschlüssel, durch den das Replikat identifiziert wird, das diese Änderung vorgenommen hat.

    ULONGLONG

    8

    Die Taktanzahl des Replikats, das diese Änderung vorgenommen hat.

    ULONG

    4

    Reserviert. Dieser Wert ist immer 0.

    ULONGLONG

    8

    Reserviert. Dieser Wert ist immer 0.

  8. Ein Wiederherstellungssynchronisierungs-Abschnitt. Der Wiederherstellungssynchronisierungs-Abschnitt enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die Länge des Wiederherstellungssynchronisierungs-Abschnitts in Bytes. Wenn dieser Wert 0 beträgt, folgt kein Wiederherstellungssynchronisierungs-Abschnitt.

    Bei Element-IDs mit fester Länge.

    Datentyp Länge in Bytes Beschreibung

    Bytefolge

    Die Länge wird im Format der Element-ID angegeben.

    Die Element-ID mit fester Länge, die die Untergrenze der Änderungen in diesem Änderungsbatch darstellt, wenn der Änderungsbatch Teil einer Wiederherstellungssynchronisierung ist.

    Bei Element-IDs mit variabler Länge.

    Datentyp Länge in Bytes Beschreibung

    USHORT

    2

    Die Länge der ID mit variabler Länge in Bytes. Diese Länge schließt die zwei Bytes für den USHORT ein, der die Länge enthält, sowie die Bytes, die die tatsächliche ID enthalten.

    Bytefolge

    Die im vorherigen USHORT angegebene Länge.

    Die Element-ID mit variabler Länge, die die Untergrenze der Änderungen in diesem Änderungsbatch darstellt, wenn der Änderungsbatch Teil einer Wiederherstellungssynchronisierung ist.

  9. Ein Abschnitt zur geschätzten Arbeit. Der Abschnitt zur geschätzten Arbeit enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    ULONG

    4

    Die geschätzte Arbeit für die Synchronisierungssitzung.

    ULONG

    4

    Die gesamte geschätzte Arbeit für diesen Änderungsbatch.

  10. Ein Flagsabschnitt. Der Flagsabschnitt enthält die folgenden Elemente.

    Datentyp Länge in Bytes Beschreibung

    BYTE

    1

    Gibt an, ob dieser Änderungsbatch der letzte vom Quellenanbieter gesendete Änderungsbatch ist. Der Wert 0 gibt an, dass dies nicht der letzte Änderungsbatch ist. Der Wert 1 gibt an, dass dies der letzte Änderungsbatch ist.

    BYTE

    1

    Gibt an, ob dieser Änderungsbatch Teil einer Wiederherstellungssynchronisierung ist. Der Wert 0 gibt an, dass dieser Änderungsbatch kein Teil einer Wiederherstellungssynchronisierung ist. Der Wert 1 gibt an, dass dieser Änderungsbatch Teil einer Wiederherstellungssynchronisierung ist.

    BYTE

    1

    Gibt an, ob dieser Änderungsbatch gefiltert wird. Der Wert 0 gibt an, dass dieser Änderungsbatch nicht gefiltert wird. Der Wert 1 gibt an, dass dieser Änderungsbatch gefiltert wird.

Siehe auch

Verweis

ISyncChangeBatchBase2-Schnittstelle