IReplicaKeyMap::Serialize
將複寫機碼對應資料序列化為位元組陣列。
HRESULT Serialize(
BYTE *pbReplicaKeyMap,
DWORD *pcbReplicaKeyMap);
參數
- pbReplicaKeyMap
[in, out, unique, size_is(*pcbReplicaKeyMap)] 接收序列化資料的位元組陣列。
- pcbReplicaKeyMap
[in, out] 指定 pbReplicaKeyMap 中的位元組數目。當 pbReplicaKeyMap 太小時傳回序列化此複寫機碼對應資料所需的位元組數目,或傳回寫入的位元組數目。
傳回值
S_OK。
如果對應中儲存的複寫識別碼或複寫機碼無效,則為 E_INVALIDARG。
E_POINTER。
E_OUTOFMEMORY。
當 pbReplicaKeyMap 太小時,為 HRESULT_FROM_WIN32(ERROR_MORE_DATA)。在這種情況下,所需的位元組數目是在 pcbReplicaKeyMap 中傳回。
序列化格式
pbReplicaKeyMap 中所包含的序列化複寫機碼對應會儲存在位元組由大到小位元組順序中這類的精簡表單中。
序列化的複寫機碼對應依下列順序,包含下列元素:
資料類型 | 長度 (以位元組為單位) | 描述 |
---|---|---|
ULONG |
4 |
複寫機碼對應簽章。這個值一定是 5。 |
BOOL |
1 |
表示複寫機碼對應中所包含的複寫識別碼是固定長度還是可變長度。如果識別碼是固定長度,這個值是 0,如果識別碼是可變長度,則為 1。 |
USHORT |
2 |
固定長度識別碼的複寫識別碼長度 (以位元組為單位),或可變長度識別碼的最大識別碼長度。 |
ULONG |
4 |
複寫機碼對應中的項目數目。 |
複寫機碼對應區段包含複寫機碼對應項目的清單,其中的項目數目等於先前在 ULONG 中包含的值。
當複寫識別碼為固定長度時:
資料類型 | 長度 (以位元組為單位) | 描述 |
---|---|---|
位元組順序 |
在複寫識別碼格式中指定的長度。 |
固定長度複寫識別碼。 |
或者,當複寫識別碼為可變長度時:
資料類型 | 長度 (以位元組為單位) | 描述 |
---|---|---|
USHORT |
2 |
可變長度識別碼的長度 (以位元組為單位)。此長度包含內含長度之 USHORT 的兩個位元組,加上包含實際識別碼的位元組。 |
位元組順序 |
在先前的 USHORT 中指定的長度。 |
可變長度複寫識別碼。 |