enumeração CF_CALLBACK_TYPE (cfapi.h)

Contém os vários tipos de retornos de chamada usados em arquivos ou pastas de espaço reservado.

Syntax

typedef enum CF_CALLBACK_TYPE {
  CF_CALLBACK_TYPE_FETCH_DATA,
  CF_CALLBACK_TYPE_VALIDATE_DATA,
  CF_CALLBACK_TYPE_CANCEL_FETCH_DATA,
  CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS,
  CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS,
  CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE,
  CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_DELETE,
  CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_RENAME,
  CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION,
  CF_CALLBACK_TYPE_NONE = 0xffffffff
} ;

Constantes

 
CF_CALLBACK_TYPE_FETCH_DATA
Esse retorno de chamada é usado para solicitar ao provedor de sincronização um intervalo de dados de arquivo necessários para atender a uma solicitação de E/S ou uma solicitação de hidratação explícita, em um espaço reservado. A implementação desse retorno de chamada será necessária se o provedor de sincronização especificar uma política de hidratação que não seja ALWAYS_FULL no momento do registro raiz de sincronização.
CF_CALLBACK_TYPE_VALIDATE_DATA
Esse retorno de chamada é usado para solicitar ao provedor de sincronização a confirmação de que um determinado intervalo de dados de arquivo, que já está presente no disco de operações de CF_OPERATION_TYPE_TRANSFER_DATA anteriores, é válido e, portanto, pode ser usado pela plataforma para atender às solicitações de E/S do usuário. A implementação desse retorno de chamada será necessária somente se o provedor de sincronização especificar o modificador de política de hidratação VALIDATION_REQUIRED no momento do registro raiz de sincronização.
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA
Esse retorno de chamada é usado para informar ao provedor de sincronização que um intervalo de dados de arquivo não é mais necessário, geralmente porque a solicitação de origem foi cancelada. Isso permite que o provedor de sincronização pare de gastar seus esforços tentando obter os dados (cancelar solicitações de rede pendentes etc.). A implementação desse retorno de chamada é opcional.
CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS
Esse retorno de chamada é usado para solicitar que o provedor de sincronização forneça informações sobre o conteúdo de um diretório de espaço reservado para satisfazer uma operação de consulta de diretório ou uma tentativa de abrir um arquivo sob o diretório. A implementação desse retorno de chamada será necessária somente se o provedor de sincronização especificar uma política diferente de CF_POPULATION_POLICY_ALWAYS_FULL no momento do registro raiz de sincronização.
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS
Esse retorno de chamada é usado para informar ao provedor de sincronização que o conteúdo de um diretório de espaço reservado não é mais necessário, geralmente porque a solicitação de origem foi cancelada. Isso permite que o provedor de sincronização pare de gastar seus esforços tentando obter o conteúdo (cancelar solicitações de rede pendentes etc.). A implementação desse retorno de chamada é opcional.
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION
Esse retorno de chamada é usado para informar ao provedor de sincronização que um espaço reservado sob uma de suas raízes de sincronização foi aberto com êxito para acesso de leitura/gravação/exclusão. O aplicativo de usuário que executa o open não está bloqueado. Nenhuma resposta é esperada do provedor de sincronização. Essa notificação não se aplica a diretórios. A implementação desse retorno de chamada é opcional.
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION
Esse retorno de chamada é usado para informar ao provedor de sincronização que um espaço reservado sob uma de suas raízes de sincronização que foi aberta anteriormente para acesso de leitura/gravação/exclusão agora está fechado. O aplicativo de usuário que executa o fechamento não está bloqueado. Nenhuma resposta é esperada do provedor de sincronização. Essa notificação não se aplica a diretórios. A implementação desse retorno de chamada é opcional.
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE
Esse retorno de chamada é usado para informar ao provedor de sincronização que um espaço reservado sob uma de suas raiz de sincronização está prestes a ser desidratado. O aplicativo de usuário que executa a desidratação é bloqueado. Uma resposta é esperada do provedor de sincronização. A implementação desse retorno de chamada é opcional.
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION
Esse retorno de chamada é usado para informar ao provedor de sincronização que um espaço reservado sob uma de suas raízes de sincronização foi desidratado com êxito. O aplicativo de usuário que executa a desidratação não está bloqueado. Nenhuma resposta é esperada do provedor de sincronização. A implementação desse retorno de chamada é opcional.
CF_CALLBACK_TYPE_NOTIFY_DELETE
Esse retorno de chamada é usado para informar ao provedor de sincronização que um espaço reservado sob uma de suas raízes de sincronização está prestes a ser excluído. O aplicativo de usuário que executa a exclusão é bloqueado. Uma resposta é esperada do provedor de sincronização. A implementação desse retorno de chamada é opcional.
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION
Esse retorno de chamada é usado para informar ao provedor de sincronização que um espaço reservado sob uma de suas raízes de sincronização foi excluído com êxito. O aplicativo de usuário que executa a exclusão não está bloqueado. Nenhuma resposta é esperada do provedor de sincronização. A implementação desse retorno de chamada é opcional.
CF_CALLBACK_TYPE_NOTIFY_RENAME
Esse retorno de chamada é usado para informar ao provedor de sincronização que um espaço reservado sob uma de suas raízes de sincronização está prestes a ser renomeado ou movido. O aplicativo de usuário que executa a renomeação/movimentação está bloqueado. Uma resposta é esperada do provedor de sincronização. A implementação desse retorno de chamada é opcional.
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION
Esse retorno de chamada é usado para informar ao provedor de sincronização que um espaço reservado sob uma de suas raízes de sincronização foi renomeado ou movido com êxito. O aplicativo de usuário que executa a renomeação/movimentação não está bloqueado. Nenhuma resposta é esperada do provedor de sincronização. A implementação desse retorno de chamada é opcional.
CF_CALLBACK_TYPE_NONE
Valor: 0xffffffff
Nenhum tipo de retorno de chamada.

Comentários

Não são APIs fornecidas pela biblioteca, mas sim retornos de chamada que um provedor de sincronização deve implementar para atender às solicitações da plataforma. Conforme necessário, a plataforma solicitará que a instância da biblioteca em execução dentro do processo do provedor de sincronização invoque a rotina de retorno de chamada apropriada.

As rotinas de retorno de chamada serão invocadas em um thread arbitrário (parte de um pool de threads). Vários retornos de chamada podem ocorrer simultaneamente, em threads diferentes, e é responsabilidade do código do provedor de sincronização implementar qualquer sincronização necessária para que isso funcione de forma confiável. Todos os retornos de chamada são assíncronos. Solicitações de usuário assíncronas que disparam os retornos de chamada estão pendentes e o controle é retornado ao aplicativo do usuário.

Cada solicitação de retorno de chamada tem um tempo limite fixo de 60 segundos. Uma operação válida em todas as solicitações pendentes do provedor de sincronização redefine os temporizadores de todas as solicitações pendentes.

Todas as funções de retorno de chamada têm o mesmo protótipo com dois argumentos: uma estrutura CF_CALLBACK_INFO e uma estrutura CF_CALLBACK_PARAMETERS .

Rotinas de retorno de chamada não têm valor retornado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1709 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2016 [somente aplicativos da área de trabalho]
Cabeçalho cfapi.h

Confira também

CF_CALLBACK_INFO

CF_CALLBACK_PARAMETERS