지정된 하한보다 ID가 크거나 같은 항목에 대한 항목 메타데이터를 포함하는 필터링된 일괄 변경 내용을 전체 열거의 일부로 가져옵니다.
HRESULT GetFilteredFullEnumerationChangeBatch(
DWORD dwBatchSize,
ISyncFilterInfo * pFilterInfo,
IChangeBatchCallback * pCallback,
const BYTE * pbLowerFullEnumerationBound,
ISyncKnowledge * pSyncKnowledge,
ISyncFullEnumerationChangeBatch ** ppChangeBatch);
매개 변수
- dwBatchSize
[in] 반환할 일괄 변경 내용의 크기입니다.
- pFilterInfo
[in] 일괄 변경 내용에 포함될 변경 내용을 제어하는 데 사용할 수 있는 필터에 대한 정보를 나타내는 ISyncFilterInfo 개체입니다.
- pCallback
[in, unique] 일괄 변경 내용에 항목을 포함할지 여부를 판별하는 데 사용되는 IChangeBatchCallback 개체입니다.
- pbLowerFullEnumerationBound
[in] 항목 ID의 하한입니다. 이 메서드는 변경 내용이 pFilterInfo에 지정된 필터 조건에 맞는 경우 해당 ID가 이 ID 값보다 크거나 같은 변경 내용을 반환합니다.
- pSyncKnowledge
[in] 대상 복제본의 정보입니다.
- ppChangeBatch
[out] 일괄 변경 내용을 반환합니다.
반환 값
S_OK
E_POINTER
dwBatchSize가 0이면 E_INVALIDARG입니다.
주의
이 메서드는 항목 필터링이 사용되는 경우 동기화 공급자가 IKnowledgeSyncProvider::GetFullEnumerationChangeBatch 메서드를 구현하는 데 도움이 됩니다. 이 메서드는 잊어버린 정보를 복구하는 동안 호출됩니다.
이 메서드를 호출하기 전에 공급자는 메타데이터 저장소의 버전에 삭제 항목 등을 비롯한 모든 로컬 변경 내용이 반영되어 있는지 확인해야 합니다. 이는 항목을 열거하고 해당 메타데이터를 업데이트하는 명시적 메타데이터 유지 관리 작업을 통해 수행할 수 있습니다.
ISqlSyncMetadataStore를 통해 이 클래스를 구현하면 다음 기능이 수행됩니다.
전역 ID 순서에 따라 일괄 변경 내용에 변경 내용을 추가합니다.
pSyncKnowledge에 포함되지 않는 항목이 pbLowerEnumerationBound보다 ID 값이 작고 pFilterInfo에 지정된 필터 조건에 맞을 경우 해당 항목을 모두 반환합니다.
보낼 변경 내용이 더 이상 없으면 반환된 일괄 변경 내용에 대해 SetLastBatch를 호출합니다.
구현자를 위한 정보
이 메서드는 항목 ID가 pbLowerEnumerationBound보다 크거나 같고, pFilterInfo에 지정된 필터 조건에 맞는 변경 내용을 항목 ID에 따라 정렬된 순서대로 열거해야 합니다. 이를 통해 Sync Framework에서는 대상 공급자에서 삭제되었지만 원본 공급자가 잊어버린 항목을 확인할 수 있습니다.
이 일괄 처리 이후 보낼 변경 내용이 더 이상 없으면 반환된 일괄 변경 내용에 대해 SetLastBatch를 호출해야 합니다. 그렇지 않으면 Sync Framework가 IKnowledgeSyncProvider::GetFullEnumerationChangeBatch를 다시 호출하여 다른 일괄 변경 내용을 검색합니다.
항목 데이터를 항목 변경 내용 메타데이터와 함께 보내는 공급자의 경우에는 pSyncKnowledge를 사용하여 항목 데이터를 보낼 필요가 있는지 여부를 확인할 수 있습니다. pSyncKnowledge에 해당 항목 변경 내용이 포함된 항목 데이터는 보낼 필요가 없습니다.