Поделиться через


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.

Идентификатор реплики переменной длины.

См. также

Справочник

Интерфейс IReplicaKeyMap