enumeração CF_HYDRATION_POLICY_MODIFIER (cfapi.h)

Permite que um provedor de sincronização controle como os arquivos de espaço reservado devem ser hidratados pela plataforma. Esse é um modificador que pode ser usado com a política primária: CF_HYDRATION_POLICY_PRIMARY.

Syntax

typedef enum CF_HYDRATION_POLICY_MODIFIER {
  CF_HYDRATION_POLICY_MODIFIER_NONE,
  CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED,
  CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED,
  CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED,
  CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION
} ;

Constantes

 
CF_HYDRATION_POLICY_MODIFIER_NONE
0x0000

Nenhum modificador de política.
CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED
0x0001

Esse modificador de política oferece duas garantias a um provedor de sincronização. Primeiro, ele garante que os dados retornados pelo provedor de sincronização sempre sejam persistidos no disco antes de serem retornados ao aplicativo do usuário. Em segundo lugar, ele permite que o provedor de sincronização recupere os mesmos dados retornados anteriormente para a plataforma e valide sua integridade. Somente após uma confirmação bem-sucedida da integridade pelo provedor de sincronização, a plataforma concluirá a solicitação de E/S do usuário. Esse modificador ajuda a dar suporte à integridade de dados de ponta a ponta ao custo de E/S de disco extra.
CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED
0x0002

Esse modificador de política concede à plataforma a permissão para não armazenar dados retornados por um provedor de sincronização em discos locais. Esse modificador de política é ineficaz ao ser combinado com CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED.
CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED
0x0004

Esse modificador de política concede à plataforma a permissão para desidratar espaços reservados de arquivo na nuvem em sincronia sem a ajuda de provedores de sincronização. Sem esse sinalizador, a plataforma não tem permissão para chamar CfDehydratePlaceholder diretamente. Em vez disso, a única maneira com suporte de desidratar um espaço reservado de arquivo de nuvem é limpar o atributo fixado do arquivo e definir o atributo desafixado do arquivo. Nesse ponto, a desidratação real será executada de forma assíncrona pelo mecanismo de sincronização depois de receber a notificação de alteração de diretório nos dois atributos. Quando esse sinalizador for especificado, a plataforma terá permissão para invocar CfDehydratePlaceholder diretamente em qualquer espaço reservado de arquivo na nuvem em sincronia. É recomendável que os provedores de sincronização ofereçam suporte à desidratação automática.

OBSERVAÇÃO

Esse valor está disponível em Windows 10, versão 1803 e posterior.

CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION
0x0008

Esse modificador de política concede à plataforma permissão para hidratar totalmente um arquivo de forma síncrona quando intercepta uma tentativa de um Filtro AV de verificar o arquivo. Os provedores de sincronização que desejam usar RestartHydration para alterar o fileSize de um retorno de chamada FetchData devem aceitar a ALLOW_FULL_RESTART_HYDRATION política para evitar possíveis deadlocks com software antivírus e antimalware tentando verificar o arquivo e o provedor tentando alterar fileSize usando RestartHydration.

OBSERVAÇÃO

Essa atualização de enumeração só terá suporte se o PlatformVersion.IntegrationNumber obtido de CfGetPlatformInfo for 0x500 ou superior.

Comentários

Em geral, os modificadores podem ser mistos e combinados com qualquer política primária (CF_HYDRATION_POLICY_PRIMARY) e outros modificadores de política, desde que a combinação não seja autoconflituosa.

O CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION sinalizador é adicionado para evitar que o recurso de Reidratação de Reinicialização encontre deadlocks causados por detectores antivírus e malware (AV). Todos os Provedores de Sincronização que pretendem atualizar o tamanho do arquivo desidratado durante o curso de uma solicitação de hidratação devem aceitar esse recurso ou reiniciar a hidratação pode ter um deadlock quando um AV tenta verificar um arquivo que está sendo aberto criando uma seção mapeada de memória do arquivo e isso leva à hidratação. Observe que os provedores que mantêm instantâneos ou versões de um arquivo e atendem à solicitação de um usuário fornecendo a versão solicitada do arquivo, embora o arquivo tenha sido atualizado no back-end/servidor não precisam aceitar essa política. Da mesma forma, os provedores que falham na solicitação de hidratação caso o arquivo tenha sido alterado no back-end podem não aceitar essa política.

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_HYDRATION_POLICY_PRIMARY

CfDehydratePlaceholder

CfGetPlatformInfo