Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Serializza i dati dell'oggetto conoscenza in una matrice di byte.
HRESULT Serialize(
BOOL fSerializeReplicaKeyMap,
BYTE *pbKnowledge,
DWORD *pcbKnowledge);
Parametri
- fSerializeReplicaKeyMap
[in] TRUE per serializzare l'oggetto IReplicaKeyMap contenuto nella conoscenza. In caso contrario, FALSE.
- pbKnowledge
[in, out, unique, size_is(*pcbKnowledge)] La matrice di byte che riceve i dati della conoscenza serializzati.
- pcbKnowledge
[in, out] Specifica il numero di byte in pbKnowledge. Restituisce il numero di byte necessari per serializzare i dati della mappa di chiavi di replica se pbKnowledge è troppo piccolo oppure restituisce il numero di byte scritti.
Valore restituito
S_OK.
E_POINTER.
E_INVALIDARG.
E_OUTOFMEMORY.
HRESULT_FROM_WIN32 (ERROR_MORE_DATA) se pbKnowledge è troppo piccolo. In questo caso, il numero necessario di byte viene restituito in pcbKnowledge.
Osservazioni
L'oggetto Interfaccia IReplicaKeyMap appropriato è necessario per deserializzare un oggetto conoscenza tramite IProviderSyncServices::DeserializeSyncKnowledge. Quando FALSE è specificato per fSerializeReplicaKeyMap, l'oggetto IReplicaKeyMap viene serializzato insieme ai dati della conoscenza. Quando questo flag non è specificato, i dati di IReplicaKeyMap devono essere archiviati in un altro modo affinché sia possibile deserializzare l'oggetto conoscenza.
Formato di serializzazione
La conoscenza serializzata contenuta in pbKnowledge viene archiviata in formato ridotto, senza riempimento, nell'ordine dei byte big endian. La conoscenza serializzata contiene gli elementi riportati di seguito nell'ordine seguente.
Una sezione dell'intestazione. La sezione dell'intestazione contiene gli elementi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Versione principale del formato di serializzazione. Questo valore è sempre 3.
ULONG
4
Versione secondaria del formato di serializzazione. Questo valore è sempre 0.
Una sezione della mappa di chiavi di replica se fSerializeReplicaKeyMap è TRUE. In caso contrario, non è presente alcuna sezione della mappa di chiavi di replica. Il formato della sezione della mappa di chiavi di replica è definito in IReplicaKeyMap::Serialize.
Una sezione dello schema del formato dell'ID. La sezione dello schema del formato dell'ID contiene gli elementi seguenti:
Tipo di dati Lunghezza in byte Descrizione BOOL
1
Indica se gli ID elemento contenuti nella conoscenza sono a lunghezza fissa o variabile. Questo valore è 0 se gli ID sono a lunghezza fissa o 1 se gli ID sono a lunghezza variabile.
USHORT
2
Lunghezza, in byte, degli ID elemento per gli ID a lunghezza fissa o lunghezza massima dell'ID per gli ID a lunghezza variabile.
BOOL
1
Indica se gli ID unità di modifica contenuti nella conoscenza sono a lunghezza fissa o variabile. Questo valore è 0 se gli ID sono a lunghezza fissa o 1 se gli ID sono a lunghezza variabile.
USHORT
2
Lunghezza, in byte, degli ID unità di modifica per gli ID a lunghezza fissa o lunghezza massima dell'ID per gli ID a lunghezza variabile.
Una sezione del vettore di clock di ambito. La sezione del vettore di clock di ambito contiene gli elementi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Firma del vettore di clock. Questo valore è 1 se il vettore di clock non contiene elementi feed FeedSync; in caso contrario, il valore è 9.
ULONG
4
Numero di elementi di vettore di clock contenuti in questo vettore di clock.
Se il vettore di clock contiene elementi feed FeedSync, la sezione seguente è presente nella conoscenza serializzata. In caso contrario, non è presente:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Numero di aggiornamenti apportati al feed FeedSync associato a questa conoscenza. Questo valore corrisponde all'attributo updates del feed FeedSync.
BYTE
1
Indica se il feed FeedSync rileva i conflitti. Questo valore corrisponde all'attributo noconflicts del feed FeedSync. Questo valore è 0 se noconflicts non è impostato; in caso contrario, il valore è 1.
Il resto della sezione del vettore di clock contiene un elenco degli elementi di vettore di clock, con il numero di elementi uguale al valore specificato in precedenza nella sezione del vettore di clock.
Ogni elemento di vettore di clock contiene gli elementi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Chiave di replica.
ULONGLONG
8
Conteggio.
Quando la conoscenza è associata a un feed FeedSync, ogni elemento di vettore di clock contiene gli elementi aggiuntivi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Parte relativa alla data del valore when del feed FeedSync.
ULONG
4
Parte relativa all'ora del valore when del feed FeedSync.
BYTE
1
Flag associati al feed FeedSync.
Una sezione delle eccezioni di intervallo. La sezione delle eccezioni di intervallo contiene gli elementi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Firma della sezione delle eccezioni di intervallo. Questo valore è sempre 3.
ULONG
4
Numero di eccezioni di intervallo contenute nella conoscenza.
La sezione delle eccezioni di intervallo contiene un elenco di eccezioni di intervallo il cui numero è uguale al valore specificato nel precedente valore ULONG.
Ogni eccezione di intervallo contiene gli elementi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Firma dell'eccezione di intervallo. Questo valore è sempre 2.
Se gli ID elemento sono a lunghezza fissa:
Tipo di dati Lunghezza in byte Descrizione Sequenza di byte
Lunghezza specificata nel formato dell'ID elemento.
ID elemento a lunghezza fissa dell'ID elemento del limite inferiore per l'intervallo.
Sequenza di byte
Lunghezza specificata nel formato dell'ID elemento.
ID elemento a lunghezza fissa dell'ID elemento del limite superiore per l'intervallo.
Oppure se gli ID elemento sono a lunghezza variabile:
Tipo di dati Lunghezza in byte Descrizione USHORT
2
Lunghezza, in byte, dell'ID a lunghezza variabile. Questa lunghezza include i due byte per il valore USHORT che contiene la lunghezza e i byte che contengono l'ID effettivo.
Sequenza di byte
Lunghezza specificata nel precedente valore USHORT.
ID elemento a lunghezza variabile dell'ID elemento del limite inferiore per l'intervallo.
USHORT
2
Lunghezza, in byte, dell'ID a lunghezza variabile. Questa lunghezza include i due byte per il valore USHORT che contiene la lunghezza e i byte che contengono l'ID effettivo.
Sequenza di byte
Lunghezza specificata nel precedente valore USHORT.
ID elemento a lunghezza variabile dell'ID elemento del limite superiore per l'intervallo.
Vettore di clock associato all'eccezione di intervallo.
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Firma del vettore di clock. Questo valore è 1 se il vettore di clock non contiene elementi feed FeedSync; in caso contrario, il valore è 9.
ULONG
4
Numero di elementi di vettore di clock contenuti in questo vettore di clock.
Se il vettore di clock contiene elementi feed FeedSync, la sezione seguente è presente nella conoscenza serializzata. In caso contrario, non è presente:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Numero di aggiornamenti apportati al feed FeedSync associato a questa conoscenza. Questo valore corrisponde all'attributo updates del feed FeedSync.
BYTE
1
Indica se il feed FeedSync rileva i conflitti. Questo valore corrisponde all'attributo noconflicts del feed FeedSync. Questo valore è 0 se noconflicts non è impostato; in caso contrario, il valore è 1.
Il resto del vettore di clock contiene un elenco degli elementi di vettore di clock, con il numero di elementi uguale al valore specificato in precedenza nella sezione del vettore di clock.
Ogni elemento di vettore di clock contiene gli elementi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Chiave di replica.
ULONGLONG
8
Conteggio.
Quando la conoscenza è associata a un feed FeedSync, ogni elemento di vettore di clock contiene gli elementi aggiuntivi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Parte relativa alla data del valore when del feed FeedSync.
ULONG
4
Parte relativa all'ora del valore when del feed FeedSync.
BYTE
1
Flag associati al feed FeedSync.
Una sezione delle singole eccezioni dell'elemento. La sezione delle singole eccezioni dell'elemento contiene gli elementi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Firma della sezione delle singole eccezioni dell'elemento. Questo valore è sempre 6.
ULONG
4
Firma della tabella di vettori di clock. Questo valore è sempre 4.
ULONG
4
Numero di vettori di clock contenuti nella relativa tabella.
Tabella di vettori di clock. La tabella di vettori di clock contiene un elenco di vettori di clock il cui numero è uguale al valore specificato nel precedente valore ULONG. Ogni vettore di clock contiene gli elementi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Firma del vettore di clock. Questo valore è 1 se il vettore di clock non contiene elementi feed FeedSync; in caso contrario, il valore è 9.
ULONG
4
Numero di elementi di vettore di clock contenuti in questo vettore di clock.
Se il vettore di clock contiene elementi feed FeedSync, la sezione seguente è presente nella conoscenza serializzata. In caso contrario, non è presente:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Numero di aggiornamenti apportati al feed FeedSync associato a questa conoscenza. Questo valore corrisponde all'attributo updates del feed FeedSync.
BYTE
1
Indica se il feed FeedSync rileva i conflitti. Questo valore corrisponde all'attributo noconflicts del feed FeedSync. Questo valore è 0 se noconflicts non è impostato; in caso contrario, il valore è 1.
Il resto del vettore di clock contiene un elenco degli elementi di vettore di clock, con il numero di elementi uguale al valore specificato in precedenza nella sezione del vettore di clock.
Ogni elemento di vettore di clock contiene gli elementi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Chiave di replica.
ULONGLONG
8
Conteggio.
Quando la conoscenza è associata a un feed FeedSync, ogni elemento di vettore di clock contiene gli elementi aggiuntivi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Parte relativa alla data del valore when del feed FeedSync.
ULONG
4
Parte relativa all'ora del valore when del feed FeedSync.
BYTE
1
Flag associati al feed FeedSync.
Tabella delle singole eccezioni dell'elemento. La tabella delle singole eccezioni dell'elemento contiene gli elementi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Numero di singole eccezioni dell'elemento contenute nella relativa tabella.
Ogni singola eccezione dell'elemento nella tabella contiene gli elementi seguenti.
Se gli ID elemento sono a lunghezza fissa:
Tipo di dati Lunghezza in byte Descrizione Sequenza di byte
Lunghezza specificata nel formato dell'ID elemento.
ID elemento a lunghezza fissa associato alla singola eccezione dell'elemento.
Oppure se gli ID elemento sono a lunghezza variabile:
Tipo di dati Lunghezza in byte Descrizione USHORT
2
Lunghezza, in byte, dell'ID a lunghezza variabile. Questa lunghezza include i due byte per il valore USHORT che contiene la lunghezza e i byte che contengono l'ID effettivo.
Sequenza di byte
Lunghezza specificata nel precedente valore USHORT.
ID elemento a lunghezza variabile associato alla singola eccezione dell'elemento.
Ogni singola eccezione dell'elemento contiene gli elementi aggiuntivi seguenti:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Quando la singola eccezione dell'elemento fa riferimento a un elemento, questo valore è un indice nella tabella di vettori di clock contenuta in questi dati serializzati. Quando la singola eccezione dell'elemento fa riferimento a una o più eccezioni dell'unità di modifica, questo valore è 0xFFFFFFFF.
ULONG
4
Numero di eccezioni dell'unità di modifica contenute nell'eccezione. Questo valore può essere 0.
Se sono presenti eccezioni dell'unità di modifica, viene generato un relativo elenco. L'elenco contiene il numero di eccezioni dell'unità di modifica specificato nel precedente valore ULONG.
Ogni eccezione dell'unità di modifica contiene gli elementi seguenti.
Se gli ID unità di modifica sono a lunghezza fissa:
Tipo di dati Lunghezza in byte Descrizione Sequenza di byte
Lunghezza specificata nel formato dell'ID unità di modifica.
ID unità di modifica a lunghezza fissa associato all'eccezione dell'unità di modifica.
Oppure se gli ID unità di modifica sono a lunghezza variabile:
Tipo di dati Lunghezza in byte Descrizione USHORT
2
Lunghezza, in byte, dell'ID a lunghezza variabile. Questa lunghezza include i due byte per il valore USHORT che contiene la lunghezza e i byte che contengono l'ID effettivo.
Sequenza di byte
Lunghezza specificata nel precedente valore USHORT.
ID unità di modifica a lunghezza variabile associato all'eccezione dell'unità di modifica.
Ogni eccezione dell'unità di modifica contiene l'elemento aggiuntivo seguente:
Tipo di dati Lunghezza in byte Descrizione ULONG
4
Indice nella tabella di vettori di clock contenuta in questi dati serializzati.