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입니다. |