Compartir a través de


Función CfConnectSyncRoot (cfapi.h)

Inicia la comunicación bidireccional entre un proveedor de sincronización y la API de filtro de sincronización.

Sintaxis

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
);

Parámetros

[in] SyncRootPath

Ruta de acceso a la raíz de sincronización.

[in] CallbackTable

Tabla de devolución de llamada que se va a registrar. Este parámetro es la forma en que el proveedor de sincronización indica a la biblioteca qué funciones llamar a para varios tipos de solicitudes de la plataforma. Es una matriz de estructuras que contienen un tipo de devolución de llamada y un puntero de función asociado. El proveedor de sincronización solo necesita registrar las devoluciones de llamada que implementa. La matriz CallbackTable siempre debe terminar con CF_CALLBACK_REGISTRATION_END.

[in, optional] CallbackContext

CallbackContext se proporciona para la comodidad del proveedor de sincronización. La plataforma recordará este CallbackContext y lo devolverá al proveedor de sincronización cada vez que se invoca una de sus funciones de devolución de llamada en la raíz de sincronización actual. Un buen uso para CallbackContext sería un puntero a la propia estructura del proveedor de sincronización que mantiene el estado de esta conexión.

[in] ConnectFlags

El proveedor de sincronización puede solicitar información adicional cuando se invocan sus devoluciones de llamada pasando ConnectFlags a esta API. Se admiten las marcas siguientes:

Solicitud Descripción
REQUEST_PROCESS_INFO La plataforma devuelve la ruta de acceso completa de la imagen del proceso de hidratación en los parámetros de devolución de llamada cuando se especifica esta marca.
REQUIRE_FULL_FILE_PATH La plataforma devuelve la ruta de acceso completa del marcador de posición que se solicita en los parámetros de devolución de llamada cuando se especifica esta marca.
BLOCK_SELF_IMPLICIT_HYDRATION La hidratación implícita, que no se realiza a través de CfHydratePlaceholder, puede ocurrir cuando el software antivirus examina las actividades del sistema de archivos del proveedor de sincronización en marcadores de posición de archivos en la nube no hidratados. No se espera este tipo de hidrataciones implícitas. Si el proveedor de sincronización nunca inicia operaciones implícitas de hidratación, puede indicar al bloque de plataforma todas estas operaciones de hidratación implícitas en lugar de que se produzcan errores en las devoluciones de llamada de FETCH_DATA más adelante.

[out] ConnectionKey

Si la devolución se realiza correctamente, esta API devolverá una connectionKey opaca al proveedor de sincronización. Esto representa el canal de comunicación que se acaba de establecer y el proveedor de sincronización puede recordar ConnectionKey y pasarlo al llamar a varias API del proveedor de sincronización. Si un proveedor de sincronización solo espera establecer una única conexión, connectionKey podría almacenarse en un entorno global. Sin embargo, la plataforma admite un único proceso de proveedor que se conecta a varias raíces de sincronización diferentes al mismo tiempo y, para cada conexión, se devolverá una connectionKey diferente. Un buen lugar para almacenar cada ConnectionKey estaría dentro de la estructura interna del proveedor de sincronización identificada por CallbackContext.

Valor devuelto

Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Esto inicia un canal de comunicación bidireccional entre el proveedor de sincronización y el filtro de sincronización. Un proveedor de sincronización normalmente llama a esta API poco después del inicio, una vez que se ha inicializado y está listo para atender las solicitudes.

La raíz de sincronización debe registrarse con la plataforma antes de estar conectada. Para un syncRootPath determinado, puede haber como máximo una conexión establecida en un momento dado.

El proveedor de sincronización debe tener WRITE_DATA o WRITE_DAC acceso a la raíz de sincronización que se va a conectar o se producirá un error en la API con HRESULT(ERROR_CLOUD_FILE_ACCESS_DENIED) .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1709 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2016 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado cfapi.h
Library CldApi.lib
Archivo DLL CldApi.dll

Consulte también

CfHydratePlaceholder