다음을 통해 공유


IReplicaKeyMap::Serialize

복제본 키 맵 데이터를 바이트 배열로 직렬화합니다.

HRESULT Serialize( 
  BYTE *pbReplicaKeyMap,
  DWORD *pcbReplicaKeyMap);

매개 변수

  • pbReplicaKeyMap
    [in, out, unique, size_is(*pcbReplicaKeyMap)] 직렬화된 데이터를 수신하는 바이트 배열입니다.
  • pcbReplicaKeyMap
    [in, out] pbReplicaKeyMap의 바이트 수를 지정합니다. pbReplicaKeyMap이 너무 작으면 복제본 키 맵 데이터를 직렬화하는 데 필요한 바이트 수를 반환하고, 그렇지 않으면 쓴 바이트 수를 반환합니다.

반환 값

  • S_OK

  • 맵에 저장된 복제본 ID 또는 복제본 키가 유효하지 않으면 E_INVALIDARG입니다.

  • E_POINTER

  • E_OUTOFMEMORY

  • pbReplicaKeyMap이 너무 작으면 HRESULT_FROM_WIN32(ERROR_MORE_DATA)입니다. 이 경우에는 pcbReplicaKeyMap에서 필요한 바이트 수가 반환됩니다.

직렬화 형식

pbReplicaKeyMap에 포함되는 직렬화된 복제본 키 맵은 big-endian 바이트 순서에 따라 축약 형식으로 저장됩니다.

직렬화된 복제본 키 맵에는 다음과 같은 요소가 순서대로 포함됩니다.

데이터 형식 길이(바이트) 설명

ULONG

4

복제본 키 맵 서명입니다. 이 값은 항상 5입니다.

BOOL

1

복제본 키 맵에 포함되는 복제본 ID가 고정 길이인지 아니면 가변 길이인지를 나타냅니다. 이 값은 ID가 고정 길이이면 0이고 가변 길이이면 1입니다.

USHORT

2

고정 길이 ID의 복제본 ID 길이(바이트) 또는 가변 길이 ID의 최대 ID 길이입니다.

ULONG

4

복제본 키 맵의 항목 수입니다.

복제본 키 맵 섹션에는 이전 ULONG에 포함된 값과 같은 수의 복제본 키 맵 항목 목록이 포함됩니다.

복제본 ID가 고정 길이인 경우

데이터 형식 길이(바이트) 설명

바이트 시퀀스

복제본 ID 형식에 지정된 길이입니다.

고정 길이 복제본 ID입니다.

복제본 ID가 가변 길이인 경우

데이터 형식 길이(바이트) 설명

USHORT

2

가변 길이 ID의 길이(바이트)입니다. 이 길이에는 실제 ID를 포함하는 바이트와 길이를 포함하는 USHORT용 2바이트가 포함됩니다.

바이트 시퀀스

이전 USHORT에 지정된 길이입니다.

가변 길이 복제본 ID입니다.

참고 항목

참조

IReplicaKeyMap 인터페이스