estrutura CF_CALLBACK_PARAMETERS (cfapi.h)

Essa estrutura contém parâmetros específicos de retorno de chamada, como deslocamento de arquivo, comprimento, sinalizadores etc.

Sintaxe

typedef struct CF_CALLBACK_PARAMETERS {
  ULONG ParamSize;
  union {
    struct {
      CF_CALLBACK_CANCEL_FLAGS Flags;
      union {
        struct {
          LARGE_INTEGER FileOffset;
          LARGE_INTEGER Length;
        } FetchData;
      } DUMMYUNIONNAME;
    } Cancel;
    struct {
      CF_CALLBACK_FETCH_DATA_FLAGS   Flags;
      LARGE_INTEGER                  RequiredFileOffset;
      LARGE_INTEGER                  RequiredLength;
      LARGE_INTEGER                  OptionalFileOffset;
      LARGE_INTEGER                  OptionalLength;
      LARGE_INTEGER                  LastDehydrationTime;
      CF_CALLBACK_DEHYDRATION_REASON LastDehydrationReason;
    } FetchData;
    struct {
      CF_CALLBACK_VALIDATE_DATA_FLAGS Flags;
      LARGE_INTEGER                   RequiredFileOffset;
      LARGE_INTEGER                   RequiredLength;
    } ValidateData;
    struct {
      CF_CALLBACK_FETCH_PLACEHOLDERS_FLAGS Flags;
      PCWSTR                               Pattern;
    } FetchPlaceholders;
    struct {
      CF_CALLBACK_OPEN_COMPLETION_FLAGS Flags;
    } OpenCompletion;
    struct {
      CF_CALLBACK_CLOSE_COMPLETION_FLAGS Flags;
    } CloseCompletion;
    struct {
      CF_CALLBACK_DEHYDRATE_FLAGS    Flags;
      CF_CALLBACK_DEHYDRATION_REASON Reason;
    } Dehydrate;
    struct {
      CF_CALLBACK_DEHYDRATE_COMPLETION_FLAGS Flags;
      CF_CALLBACK_DEHYDRATION_REASON         Reason;
    } DehydrateCompletion;
    struct {
      CF_CALLBACK_DELETE_FLAGS Flags;
    } Delete;
    struct {
      CF_CALLBACK_DELETE_COMPLETION_FLAGS Flags;
    } DeleteCompletion;
    struct {
      CF_CALLBACK_RENAME_FLAGS Flags;
      PCWSTR                   TargetPath;
    } Rename;
    struct {
      CF_CALLBACK_RENAME_COMPLETION_FLAGS Flags;
      PCWSTR                              SourcePath;
    } RenameCompletion;
  } DUMMYUNIONNAME;
} CF_CALLBACK_PARAMETERS;

Membros

ParamSize

ParamSize é definido com base no retorno de chamada que está sendo executado.

Callback ParamSize Information
CF_CALLBACK_TYPE_FETCH_DATA Defina como o tamanho de FetchData mais o tamanho de um ULONG.
CF_CALLBACK_TYPE_VALIDATE_DATA Defina como o tamanho de ValidateData mais o tamanho de um ULONG.
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA Defina como o tamanho de Cancel.FetchData mais o tamanho de dois ULONGs.
CF_CALLBACK_TYPE_FETCH_PLACHOLDERS Defina como o tamanho de FetchPlaceholders mais o tamanho de um ULONG.
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACHOLDERS Defina como o tamanho de dois ULONGs.
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION Defina como o tamanho de OpenCompletion mais o tamanho de um ULONG.
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION definido como o tamanho de CloseCompletion mais o tamanho de um ULONG.
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE Defina como o tamanho de Dehydrate mais o tamanho de um ULONG.
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION Defina como o tamanho de DehydrateCompletion mais o tamanho de um ULONG.
CF_CALLBACK_TYPE_NOTIFY_DELETE Defina como o tamanho de Delete mais o tamanho de um ULONG.
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION Defina como o tamanho de DeleteCompletion mais o tamanho de um ULONG.
CF_CALLBACK_TYPE_NOTIFY_RENAME Defina como o tamanho de Rename mais o tamanho de um ULONG.
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION Defina como o tamanho de RenameCompletion mais o tamanho de um ULONG.

DUMMYUNIONNAME

DUMMYUNIONNAME.Cancel

DUMMYUNIONNAME.Cancel.Flags

Os sinalizadores podem ser definidos para os seguintes sinalizadores:

  • CF_CALLBACK_CANCEL_FLAG_IO_TIMEOUT será definido se a solicitação do usuário for cancelada como resultado da expiração do temporizador de 60 segundos.
  • CF_CALLBACK_CANCEL_FLAG_IO_ABORTED será definido se a solicitação do usuário for cancelada como resultado do usuário encerrar explicitamente a hidratação do sistema de download iniciado pelo aplicativo.

DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME

DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData

DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.FileOffset

O deslocamento, em bytes, para especificar o intervalo de dados de arquivo que não é mais necessário. Observe que isso pode corresponder ao RequiredFileOffset da busca correspondente, mas também pode ser um subconjunto. Se for um subconjunto, os dados fora do intervalo de cancelamento ainda serão necessários, por exemplo, para atender às operações de E/S pendentes que chegaram posteriormente.

DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.Length

O comprimento, em bytes, dos dados de arquivo que não são mais necessários. Observe que isso pode corresponder ao RequiredLength da busca correspondente, mas também pode ser um subconjunto. Se for um subconjunto, os dados fora do intervalo de cancelamento ainda serão necessários, por exemplo, para atender às operações de E/S pendentes que chegaram posteriormente.

DUMMYUNIONNAME.FetchData

DUMMYUNIONNAME.FetchData.Flags

Os sinalizadores podem ser definidos com os seguintes valores:

  • CF_CALLBACK_FETCH_DATA_FLAG_RECOVER será definido se o retorno de chamada for invocado como resultado do processo de hidratação interrompido anteriormente, devido ao desligamento impuro do provedor de sincronização ou à perda de energia, etc.
  • CF_CALLBACK_FETCH_DATA_FLAG_EXPLICIT_HYDRATION será definido se o retorno de chamada for invocado como resultado de uma chamada para CfHydratePlaceholder.

DUMMYUNIONNAME.FetchData.RequiredFileOffset

O deslocamento, em bytes, para especificar o intervalo de dados de arquivo que é absolutamente necessário pelo filtro para atender às solicitações de E/S pendentes.

DUMMYUNIONNAME.FetchData.RequiredLength

O comprimento, em bytes, dos dados de arquivo absolutamente necessários pelo filtro para atender às solicitações de E/S pendentes.

DUMMYUNIONNAME.FetchData.OptionalFileOffset

O deslocamento, em bytes, fornecido como uma dica quanto a uma gama mais ampla de dados de arquivo que podem ser fornecidos de forma útil à plataforma, caso o provedor de sincronização prefira fornecer dados em partes maiores. Normalmente, o intervalo opcional será o intervalo contíguo máximo que não está presente no momento no espaço reservado. Isso é opcional e pode ser usado se o provedor de sincronização preferir trabalhar com segmentos maiores de dados.

DUMMYUNIONNAME.FetchData.OptionalLength

O comprimento, em bytes, fornecido como uma dica quanto a uma gama mais ampla de dados de arquivo que poderiam ser fornecidos de forma útil à plataforma, caso o provedor de sincronização prefira fornecer dados em partes maiores. Normalmente, o intervalo opcional será o intervalo contíguo máximo que não está presente no momento no espaço reservado. Isso é opcional e pode ser usado se o provedor de sincronização preferir trabalhar com segmentos maiores de dados.

Um comprimento de -1, indicado como CF_EOF, significa infinito (ou seja, até o fim do arquivo).

Não há nenhum requisito para que o provedor de sincronização retorne todos os dados necessários ao mesmo tempo. Também não há nenhum requisito para que o provedor de sincronização retorne os dados dentro do intervalo necessário ou do intervalo opcional. A plataforma garante que, em nenhuma circunstância, os dados de arquivo modificados/não sincronizados sejam bloqueados devido a uma operação de CF_OPERATION_TYPE_TRANSFER_DATA inválida. No entanto, os dados retornados devem ser alinhados 4KB para o deslocamento e o comprimento, a menos que o intervalo retornado termine no final do arquivo, nesse caso, o comprimento não será necessário para ser alinhado a 4KB se o intervalo terminar no final ou além do final do arquivo.

DUMMYUNIONNAME.FetchData.LastDehydrationTime

A hora do sistema em que o arquivo de nuvem em questão foi desidratado. É uma contagem de intervalos de 100 nanossegundos desde 1º de janeiro de 1601.

DUMMYUNIONNAME.FetchData.LastDehydrationReason

Um membro da enumeração CF_CALLBACK_DEHYDRATION_REASON especificando o motivo pelo qual o arquivo foi desidratado pela última vez.

LastDehydrationReason pode ser um dos seguintes:

Motivo Descrição
CF_CALLBACK_DEHYDRATE_REASON_NEVER O arquivo de nuvem nunca foi desidratado após sua criação.
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL O usuário desidratava explicitamente o arquivo de nuvem.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_PERIODIC A plataforma envelheceu o arquivo de nuvem com base em políticas definidas pelo usuário.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOWSPACE A plataforma desidratava o arquivo de nuvem ao experimentar pouco espaço em disco no volume em que esse arquivo reside.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_UPGRADE A plataforma desidratou esse arquivo ao recuperar espaço em disco para atualizar o sistema operacional.

DUMMYUNIONNAME.ValidateData

DUMMYUNIONNAME.ValidateData.Flags

Sinalizadores de validação de dados. CF_CALLBACK_VALIDATE_DATA_FLAG_EXPLICIT_HYDRATION será definido se o retorno de chamada for invocado como resultado de uma chamada para CfHydratePlaceholder.

DUMMYUNIONNAME.ValidateData.RequiredFileOffset

O deslocamento, em bytes, para especificar o intervalo de dados de arquivo a ser validado.

DUMMYUNIONNAME.ValidateData.RequiredLength

O comprimento, em bytes, do intervalo de dados de arquivo que precisa ser validado. Um comprimento de -1, indicado como CF_EOF, significa infinito (ou seja, até o fim do arquivo).

Não há nenhum requisito para que o provedor de sincronização reconheça todos os dados necessários ao mesmo tempo. Também não há nenhum requisito para que o provedor de sincronização reconheça os dados dentro do intervalo necessário. A plataforma garante que, em nenhuma circunstância, os dados de arquivo modificados/não sincronizados sejam bloqueados devido a uma operação de CF_OPERATION_TYPE_ACT_DATA inválida. No entanto, os dados reconhecidos devem ser alinhados 4KB para o deslocamento e o comprimento, a menos que o intervalo retornado termine no final do arquivo, nesse caso, o comprimento não será necessário para ser alinhado a 4KB se o intervalo terminar no final ou além do final do arquivo.

DUMMYUNIONNAME.FetchPlaceholders

DUMMYUNIONNAME.FetchPlaceholders.Flags

Esse valor flags deve ser definido como CF_CALLBACK_FETCH_PLACEHOLDERS_FLAG_NONE.

DUMMYUNIONNAME.FetchPlaceholders.Pattern

Um padrão de arquivo padrão do Windows que pode conter caracteres curinga (?, *). Geralmente, o padrão será * , mas pode ser mais específico. Espera-se que o provedor de sincronização comece a transferir informações de espaço reservado para todos os arquivos no diretório usando CF_OPERATION_TYPE_TRANSFER_PLACEHOLDERS. O provedor de sincronização deve transferir todos os espaços reservados que correspondam ao padrão, mas não necessariamente em uma única captura, como um requisito mínimo. Além disso, o provedor de sincronização pode optar por transferir espaços reservados que não correspondem ao padrão.

DUMMYUNIONNAME.OpenCompletion

DUMMYUNIONNAME.OpenCompletion.Flags

Sinalizadores de conclusão abertos do espaço reservado. Ele pode ser definido como um dos dois seguintes sinalizadores:

  • CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNKNOWN será definido se os metadados de espaço reservado estiverem corrompidos.
  • CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNSUPPORTED será definido se os metadados de espaço reservado forem de uma versão mais antiga e sem suporte.

DUMMYUNIONNAME.CloseCompletion

DUMMYUNIONNAME.CloseCompletion.Flags

O espaço reservado fecha os sinalizadores de conclusão. Ele pode ser definido como CF_CALLBACK_CLOSE_COMPLETION_FLAG_DELETED se o espaço reservado for excluído como resultado do fechamento.

DUMMYUNIONNAME.Dehydrate

DUMMYUNIONNAME.Dehydrate.Flags

Sinalizadores de desidratação de espaço reservado. Ele pode ser definido como CF_CALLBACK_DEHYDRATE_FLAG_BACKGROUND se a solicitação de desidratação for iniciada por um serviço em segundo plano do sistema.

DUMMYUNIONNAME.Dehydrate.Reason

O Reason é um membro da enumeração CF_CALLBACK_DEHYDRATION_REASON especificando o motivo pelo qual o espaço reservado está sendo desidratado. Pode ser um dos seguintes valores:

Motivo Descrição
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL O usuário solicita explicitamente para desidratar o arquivo de nuvem.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY A plataforma envelhece o arquivo de nuvem periodicamente com base nas políticas definidas pelo usuário.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE A plataforma está enfrentando pouco espaço em disco no volume em que esse arquivo de nuvem reside.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE A plataforma está recuperando espaço em disco para atualizar o sistema operacional.

DUMMYUNIONNAME.DehydrateCompletion

DUMMYUNIONNAME.DehydrateCompletion.Flags

Sinalizadores de conclusão de desidratação de espaço reservado. Ele pode ser definido com os seguintes valores:

  • CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_BACKGROUND será definido se a solicitação de desidratação for iniciada por um serviço em segundo plano do sistema.
  • CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_DEHYDRATED será definido se o placer tiver sido hidratado antes da solicitação de desidratação.

DUMMYUNIONNAME.DehydrateCompletion.Reason

O Reason é um membro da enumeração CF_CALLBACK_DEHYDRATION_REASON especificando o motivo pelo qual o espaço reservado foi desidratado. Pode ser um dos seguintes valores:

Motivo Descrição
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL O usuário solicita explicitamente para desidratar o arquivo de nuvem.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY A plataforma envelhece o arquivo de nuvem periodicamente com base nas políticas definidas pelo usuário.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE A plataforma está enfrentando pouco espaço em disco no volume em que esse arquivo de nuvem reside.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE A plataforma está recuperando espaço em disco para atualizar o sistema operacional.

DUMMYUNIONNAME.Delete

DUMMYUNIONNAME.Delete.Flags

Sinalizadores de exclusão de espaço reservado. Ele está definido como CF_CALLBACK_DELETE_FLAG_NONE.

DUMMYUNIONNAME.DeleteCompletion

DUMMYUNIONNAME.DeleteCompletion.Flags

Sinalizadores completos de exclusão de espaço reservado. Ele está definido como CF_CALLBACK_DELETE_COMPLETION_FLAG_NONE.

DUMMYUNIONNAME.Rename

DUMMYUNIONNAME.Rename.Flags

Renomeie sinalizadores de espaço reservado. Ele pode ser definido com os seguintes valores:

  • CF_CALLBACK_RENAME_FLAG_IS_DIRECTORY será definido se o espaço reservado for um diretório.
  • CF_CALLBACK_RENAME_FLAG_SOURCE_IN_SCOPE será definido se o link a ser renomeado ou movido estiver dentro de uma raiz de sincronização gerenciada pelo processo de sincronização.
  • CF_CALLBACK_RENAME_FLAG_TARGET_IN_SCOPE será definido se o destino de renomeação ou movimentação estiver na mesma raiz de sincronização do caminho de origem.

DUMMYUNIONNAME.Rename.TargetPath

O caminho de destino de renomeação/movimentação completo em relação ao volume.

DUMMYUNIONNAME.RenameCompletion

DUMMYUNIONNAME.RenameCompletion.Flags

Os sinalizadores de espaço reservado para conclusão de renomeação. Ele está definido como CF_CALLBACK_RENAME_COMPLETION_FLAG_NONE.

DUMMYUNIONNAME.RenameCompletion.SourcePath

O caminho completo do link de origem em relação ao volume.

Requisitos

   
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

CfHydratePlaceholder

CF_CALLBACK_TYPE

CF_CALLBACK_DEHYDRATION_REASON