CfConnectSyncRoot 함수(cfapi.h)
동기화 공급자와 동기화 필터 API 간의 양방향 통신을 시작합니다.
구문
HRESULT CfConnectSyncRoot(
[in] LPCWSTR SyncRootPath,
[in] const CF_CALLBACK_REGISTRATION *CallbackTable,
[in, optional] LPCVOID CallbackContext,
[in] CF_CONNECT_FLAGS ConnectFlags,
[out] CF_CONNECTION_KEY *ConnectionKey
);
매개 변수
[in] SyncRootPath
동기화 루트의 경로입니다.
[in] CallbackTable
등록할 콜백 테이블입니다. 이 매개 변수는 동기화 공급자가 플랫폼에서 다양한 유형의 요청을 호출할 함수를 라이브러리에 알리는 방법입니다. 콜백 형식 및 연결된 함수 포인터를 포함하는 구조체의 배열입니다. 동기화 공급자는 구현하는 콜백만 등록하면 됩니다. CallbackTable 배열은 항상 CF_CALLBACK_REGISTRATION_END 끝나야 합니다.
[in, optional] CallbackContext
CallbackContext 는 동기화 공급자의 편의를 위해 제공됩니다. 플랫폼은 이 CallbackContext 를 기억하고 현재 동기화 루트에서 콜백 함수 중 하나가 호출될 때마다 동기화 공급자에게 다시 전달합니다. CallbackContext에 적합한 용도는 이 연결의 상태를 유지하는 동기화 공급자의 자체 구조에 대한 포인터입니다.
[in] ConnectFlags
동기화 공급자는 ConnectFlags 를 이 API에 전달하여 콜백이 호출될 때 추가 정보를 제공하도록 요청할 수 있습니다. 지원되는 플래그는 다음과 같습니다.
요청 | 설명 |
---|---|
REQUEST_PROCESS_INFO | 이 플래그가 지정되면 플랫폼은 콜백 매개 변수에서 하이드레이션 프로세스의 전체 이미지 경로를 반환합니다. |
REQUIRE_FULL_FILE_PATH | 플랫폼은 이 플래그를 지정할 때 콜백 매개 변수에서 요청되는 자리 표시자의 전체 경로를 반환합니다. |
BLOCK_SELF_IMPLICIT_HYDRATION | CfHydratePlaceholder를 통해 수행되지 않는 암시적 하이드레이션은 바이러스 백신 소프트웨어가 수화되지 않은 클라우드 파일 자리 표시자에서 동기화 공급자의 파일 시스템 활동을 검사할 때 발생할 수 있습니다. 이러한 종류의 암시적 수화는 예상되지 않습니다. 동기화 공급자가 암시적 하이드레이션 작업 자체를 시작하지 않는 경우 나중에 FETCH_DATA 콜백에 실패하는 것이 아니라 플랫폼 블록에 이러한 모든 암시적 수분 공급 작업을 차단하도록 지시할 수 있습니다. |
[out] ConnectionKey
성공적으로 반환되면 이 API는 불투명 한 ConnectionKey 를 동기화 공급자에 다시 반환합니다. 이는 방금 설정된 통신 채널을 나타내며 동기화 공급자는 ConnectionKey 를 기억하고 다양한 동기화 공급자 API를 호출할 때 전달할 수 있습니다. 동기화 공급자가 단일 연결만 설정해야 하는 경우 ConnectionKey 를 전역으로 저장할 수 있습니다. 그러나 플랫폼은 여러 다른 동기화 루트에 동시에 연결하는 단일 공급자 프로세스를 지원하며 각 연결에 대해 다른 ConnectionKey 가 반환됩니다. 각 ConnectionKey 를 저장하는 좋은 위치는 CallbackContext로 식별된 동기화 공급자의 내부 구조 내에 있습니다.
반환 값
이 함수가 성공하면 를 반환합니다 S_OK
. 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
그러면 동기화 공급자와 동기화 필터 간에 양방향 통신 채널이 시작됩니다. 동기화 공급자는 일반적으로 시작 직후에 이 API를 호출합니다. 이 API가 초기화되고 요청을 처리할 준비가 되면 호출됩니다.
동기화 루트는 연결되기 전에 플랫폼에 등록해야 합니다. 지정된 SyncRootPath의 경우 지정된 시간에 최대 하나의 연결이 설정될 수 있습니다.
동기화 공급자는 연결할 동기화 루트에 대한 WRITE_DATA 또는 WRITE_DAC 액세스 권한이 있어야 합니다. 그렇지 않으면 HRESULT(ERROR_CLOUD_FILE_ACCESS_DENIED)에서 API가 실패합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 버전 1709 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2016 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | cfapi.h |
라이브러리 | CldApi.lib |
DLL | CldApi.dll |