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 ULONG s. |
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 ULONG s. |
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 |