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.
HRESULT_FROM_WIN32(ERROR_MORE_DATA), если размер pbReplicaKeyMap слишком мал. В этом случае необходимое число байтов возвращается в pcbReplicaKeyMap.
Формат сериализации
Сериализованная карта ключей реплики, содержащаяся в pbReplicaKeyMap, хранится в компактном виде с обратным порядком байтов.
Сериализованная карта ключей реплики содержит следующие элементы в следующем порядке.
Тип данных | Длина в байтах | Описание |
---|---|---|
ULONG |
4 |
Подпись карты ключей реплики. Это значение всегда равно 5. |
BOOL |
1 |
Показывает, какую длину имеют идентификаторы реплик, содержащиеся в карте ключей реплики, — постоянную или переменную. Это значение равно 0, если идентификаторы имеют фиксированную длину, и 1, если идентификаторы имеют переменную длину. |
USHORT |
2 |
Длина (в байтах) идентификатора реплики для идентификаторов фиксированной длины или максимальная длина для идентификаторов переменной длины. |
ULONG |
4 |
Число записей в карте ключей реплики. |
Раздел карты ключей реплики содержит список элементов. Число элементов равно значению предыдущего параметра ULONG.
Если идентификаторы реплики имеют фиксированную длину.
Тип данных | Длина в байтах | Описание |
---|---|---|
Последовательность байтов |
Длина, указанная в формате идентификатора реплики. |
Идентификатор реплики фиксированной длины. |
Или если идентификаторы реплики имеют переменную длину.
Тип данных | Длина в байтах | Описание |
---|---|---|
USHORT |
2 |
Длина (в байтах) идентификатора переменной длины. В это значение входят два байта для параметра USHORT, содержащего длину, и байты, содержащие собственно идентификатор. |
Последовательность байтов |
Длина, указанная в предыдущем параметре USHORT. |
Идентификатор реплики переменной длины. |