struttura CF_CALLBACK_PARAMETERS (cfapi.h)

Questa struttura contiene parametri specifici del callback, ad esempio offset di file, lunghezza, flag e così via.

Sintassi

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;

Members

ParamSize

ParamSize è impostato in base al callback eseguito.

Callback Informazioni su ParamSize
CF_CALLBACK_TYPE_FETCH_DATA Impostare sulle dimensioni di FetchData più le dimensioni di un oggetto ULONG.
CF_CALLBACK_TYPE_VALIDATE_DATA Impostare sulle dimensioni di ValidateData più le dimensioni di un oggetto ULONG.
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA Impostare sulla dimensione di Cancel.FetchData più le dimensioni di due ULONGs.
CF_CALLBACK_TYPE_FETCH_PLACHOLDERS Impostare sulle dimensioni di FetchPlaceholders più le dimensioni di un oggetto ULONG.
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACHOLDERS Impostare sulla dimensione di due ULONGs.
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION Impostare sulle dimensioni di OpenCompletion più le dimensioni di un oggetto ULONG.
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION impostare sulle dimensioni di CloseCompletion più le dimensioni di un oggetto ULONG.
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE Impostare sulle dimensioni di Dehydrate più le dimensioni di un oggetto ULONG.
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION Impostare sulle dimensioni di DehydrateCompletion più le dimensioni di un oggetto ULONG.
CF_CALLBACK_TYPE_NOTIFY_DELETE Impostare sulle dimensioni di Delete più le dimensioni di un oggetto ULONG.
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION Impostare sulle dimensioni di DeleteCompletion più le dimensioni di un oggetto ULONG.
CF_CALLBACK_TYPE_NOTIFY_RENAME Impostare sulle dimensioni di Rename più le dimensioni di un oggetto ULONG.
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION Impostare sulle dimensioni di RenameCompletion più le dimensioni di un oggetto ULONG.

DUMMYUNIONNAME

DUMMYUNIONNAME.Cancel

DUMMYUNIONNAME.Cancel.Flags

I flag possono essere impostati sui flag seguenti:

  • CF_CALLBACK_CANCEL_FLAG_IO_TIMEOUT viene impostato se la richiesta dell'utente viene annullata in seguito alla scadenza del timer di 60 secondi.
  • CF_CALLBACK_CANCEL_FLAG_IO_ABORTED viene impostato se la richiesta dell'utente viene annullata in seguito all'interruzione esplicita dell'idratazione dall'avviso popup di download avviato dall'app.

DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME

DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData

DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.FileOffset

Offset, in byte, per specificare l'intervallo di dati di file non più necessari. Si noti che può corrispondere a RequiredFileOffset dal recupero corrispondente, ma può anche essere un subset. Se si tratta di un subset, i dati al di fuori dell'intervallo di annullamento sono ancora necessari, ad esempio per soddisfare le operazioni di I/O in sospeso che sono arrivate successivamente.

DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.Length

Lunghezza, in byte, dei dati del file non più necessari. Si noti che può corrispondere a RequiredLength dal recupero corrispondente, ma può anche essere un subset. Se si tratta di un subset, i dati al di fuori dell'intervallo di annullamento sono ancora necessari, ad esempio per soddisfare le operazioni di I/O in sospeso che sono arrivate successivamente.

DUMMYUNIONNAME.FetchData

DUMMYUNIONNAME.FetchData.Flags

I flag possono essere impostati sui valori seguenti:

  • CF_CALLBACK_FETCH_DATA_FLAG_RECOVER viene impostato se il callback viene richiamato in seguito a un processo di idratazione interrotto in precedenza, a causa dell'arresto non pulito del provider di sincronizzazione o della perdita di alimentazione e così via.
  • CF_CALLBACK_FETCH_DATA_FLAG_EXPLICIT_HYDRATION viene impostato se il callback viene richiamato come risultato di una chiamata a CfHydratePlaceholder.

DUMMYUNIONNAME.FetchData.RequiredFileOffset

Offset, in byte, per specificare l'intervallo di dati di file assolutamente necessario dal filtro per soddisfare le richieste di I/O in sospeso.

DUMMYUNIONNAME.FetchData.RequiredLength

Lunghezza, in byte, dei dati del file assolutamente necessari per il filtro per soddisfare le richieste di I/O in sospeso.

DUMMYUNIONNAME.FetchData.OptionalFileOffset

L'offset, in byte, fornito come suggerimento per un'ampia gamma di dati di file che potrebbero essere forniti in modo utile alla piattaforma, nel caso in cui il provider di sincronizzazione preferisca fornire dati in blocchi più grandi. In genere l'intervallo facoltativo sarà l'intervallo contiguo massimo attualmente non presente nel segnaposto. Questa opzione è facoltativa e può essere usata se il provider di sincronizzazione preferisce lavorare con segmenti di dati più grandi.

DUMMYUNIONNAME.FetchData.OptionalLength

La lunghezza, espressa in byte, fornita come suggerimento per un'ampia gamma di dati di file che potrebbero essere forniti in modo utile alla piattaforma, nel caso in cui il provider di sincronizzazione preferisca fornire dati in blocchi più grandi. In genere l'intervallo facoltativo sarà l'intervallo contiguo massimo attualmente non presente nel segnaposto. Questa opzione è facoltativa e può essere usata se il provider di sincronizzazione preferisce lavorare con segmenti di dati più grandi.

Una lunghezza di -1, indicata come CF_EOF, significa infinito (ad esempio, alla fine del file).

Non è necessario che il provider di sincronizzazione restituisca tutti i dati necessari contemporaneamente. Non è inoltre necessario che il provider di sincronizzazione restituisca i dati all'interno dell'intervallo richiesto o dell'intervallo facoltativo. La piattaforma garantisce che in nessun caso i dati dei file modificati/non sincronizzati vengano caricati clobbered a causa di un'operazione di CF_OPERATION_TYPE_TRANSFER_DATA non valida. Tuttavia, i dati restituiti devono essere allineati a 4 KB sia per l'offset che per la lunghezza, a meno che l'intervallo restituito non termini alla fine del file, nel qual caso la lunghezza non deve essere allineata a 4 KB se l'intervallo termina su o oltre la fine del file.

DUMMYUNIONNAME.FetchData.LastDehydrationTime

L'ora di sistema in cui il file cloud in questione è stato disidratato. È un conteggio di intervalli di 100 nanosecondi dal 1° gennaio 1601.

DUMMYUNIONNAME.FetchData.LastDehydrationReason

Membro dell'enumerazione CF_CALLBACK_DEHYDRATION_REASON che specifica il motivo dell'ultima disidratazione del file.

LastDehydrationReason può essere uno dei seguenti:

Motivo Descrizione
CF_CALLBACK_DEHYDRATE_REASON_NEVER Il file cloud non è mai stato disidratato dopo la creazione.
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL L'utente ha disidratato in modo esplicito il file cloud.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_PERIODIC La piattaforma ha esaurito il file cloud in base ai criteri definiti dall'utente.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOWSPACE La piattaforma ha disidratato il file cloud quando si verifica uno spazio su disco insufficiente nel volume in cui si trova questo file.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_UPGRADE La piattaforma ha disidratato questo file durante il recupero dello spazio su disco per aggiornare il sistema operativo.

DUMMYUNIONNAME.ValidateData

DUMMYUNIONNAME.ValidateData.Flags

Flag di convalida dei dati. CF_CALLBACK_VALIDATE_DATA_FLAG_EXPLICIT_HYDRATION viene impostato se il callback viene richiamato come risultato di una chiamata a CfHydratePlaceholder.

DUMMYUNIONNAME.ValidateData.RequiredFileOffset

Offset, in byte, per specificare l'intervallo di dati del file da convalidare.

DUMMYUNIONNAME.ValidateData.RequiredLength

Lunghezza, in byte, dell'intervallo di dati di file da convalidare. Una lunghezza di -1, indicata come CF_EOF, significa infinito (ad esempio, alla fine del file).

Non è necessario che il provider di sincronizzazione riconosca tutti i dati necessari contemporaneamente. Non è inoltre necessario che il provider di sincronizzazione riconosca i dati all'interno dell'intervallo richiesto. La piattaforma garantisce che in nessun caso i dati dei file modificati/non sincronizzati vengano caricati clobbered a causa di un'operazione di CF_OPERATION_TYPE_ACT_DATA non valida. Tuttavia, i dati riconosciuti devono essere allineati a 4 KB sia per l'offset che per la lunghezza, a meno che l'intervallo restituito non termini alla fine del file, nel qual caso la lunghezza non deve essere allineata a 4 KB se l'intervallo termina su o oltre la fine del file.

DUMMYUNIONNAME.FetchPlaceholders

DUMMYUNIONNAME.FetchPlaceholders.Flags

Questo valore flag deve essere impostato su CF_CALLBACK_FETCH_PLACEHOLDERS_FLAG_NONE.

DUMMYUNIONNAME.FetchPlaceholders.Pattern

Modello di file di Windows standard che può contenere caratteri jolly (?, *). Spesso il modello sarà * , ma potrebbe essere più specifico. Si prevede che il provider di sincronizzazione inizi a trasferire le informazioni segnaposto per tutti i file nella directory usando CF_OPERATION_TYPE_TRANSFER_PLACEHOLDERS. Il provider di sincronizzazione deve trasferire tutti i segnaposto corrispondenti al modello, ma non necessariamente in un'unica operazione, come requisito minimo. Il provider di sincronizzazione può anche scegliere di trasferire segnaposto che non corrispondono al modello.

DUMMYUNIONNAME.OpenCompletion

DUMMYUNIONNAME.OpenCompletion.Flags

Contrassegni di completamento aperti segnaposto. Può essere impostato su uno dei due flag seguenti:

  • CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNKNOWN viene impostato se i metadati segnaposto sono danneggiati.
  • CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNSUPPORTED viene impostato se i metadati segnaposto sono di una versione precedente e non supportata.

DUMMYUNIONNAME.CloseCompletion

DUMMYUNIONNAME.CloseCompletion.Flags

Contrassegni di chiusura del segnaposto di chiusura. Può essere impostato su CF_CALLBACK_CLOSE_COMPLETION_FLAG_DELETED se il segnaposto viene eliminato in seguito alla chiusura.

DUMMYUNIONNAME.Dehydrate

DUMMYUNIONNAME.Dehydrate.Flags

Flag di disidratazione segnaposto. Può essere impostato su CF_CALLBACK_DEHYDRATE_FLAG_BACKGROUND se la richiesta di disidratazione viene avviata da un servizio in background di sistema.

DUMMYUNIONNAME.Dehydrate.Reason

Il motivo è un membro dell'enumerazione CF_CALLBACK_DEHYDRATION_REASON specificando il motivo per cui il segnaposto viene disidratato. Può essere uno dei valori seguenti:

Motivo Descrizione
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL L'utente chiede esplicitamente di disidratare il file cloud.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY La piattaforma supera periodicamente il file cloud in base ai criteri definiti dall'utente.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE La piattaforma sta riscontrando spazio su disco basso nel volume in cui risiede questo file cloud.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE La piattaforma recupera spazio su disco per aggiornare il sistema operativo.

DUMMYUNIONNAME.DehydrateCompletion

DUMMYUNIONNAME.DehydrateCompletion.Flags

Flag di completamento della disidratazione segnaposto. Può essere impostato sui valori seguenti:

  • CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_BACKGROUND viene impostato se la richiesta di disidratazione viene avviata da un servizio in background del sistema.
  • CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_DEHYDRATED è impostato se il placer è stato idratato prima della richiesta di disidratazione.

DUMMYUNIONNAME.DehydrateCompletion.Reason

Motivo è un membro dell'enumerazione CF_CALLBACK_DEHYDRATION_REASON specificando il motivo per cui il segnaposto è stato disidratato. Può essere uno dei valori seguenti:

Motivo Descrizione
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL L'utente chiede esplicitamente di disidratare il file cloud.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY La piattaforma supera periodicamente il file cloud in base ai criteri definiti dall'utente.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE La piattaforma sta riscontrando spazio su disco basso nel volume in cui risiede questo file cloud.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE La piattaforma recupera spazio su disco per aggiornare il sistema operativo.

DUMMYUNIONNAME.Delete

DUMMYUNIONNAME.Delete.Flags

Flag di eliminazione segnaposto. È impostato su CF_CALLBACK_DELETE_FLAG_NONE.

DUMMYUNIONNAME.DeleteCompletion

DUMMYUNIONNAME.DeleteCompletion.Flags

Flag completi di eliminazione segnaposto. È impostato su CF_CALLBACK_DELETE_COMPLETION_FLAG_NONE.

DUMMYUNIONNAME.Rename

DUMMYUNIONNAME.Rename.Flags

Rinominare i flag segnaposto. Può essere impostato sui valori seguenti:

  • CF_CALLBACK_RENAME_FLAG_IS_DIRECTORY è impostato se il segnaposto è una directory.
  • CF_CALLBACK_RENAME_FLAG_SOURCE_IN_SCOPE è impostato se il collegamento da rinominare o spostare si trova all'interno di una radice di sincronizzazione gestita dal processo di sincronizzazione.
  • CF_CALLBACK_RENAME_FLAG_TARGET_IN_SCOPE viene impostato se la destinazione di rinomina o spostamento si trova nella stessa radice di sincronizzazione del percorso di origine.

DUMMYUNIONNAME.Rename.TargetPath

Percorso di destinazione rinomina/spostamento completo rispetto al volume.

DUMMYUNIONNAME.RenameCompletion

DUMMYUNIONNAME.RenameCompletion.Flags

Flag segnaposto di completamento rinomina. È impostato su CF_CALLBACK_RENAME_COMPLETION_FLAG_NONE.

DUMMYUNIONNAME.RenameCompletion.SourcePath

Percorso del collegamento di origine completo relativo al volume.

Requisiti

   
Client minimo supportato Windows 10 versione 1709 [solo app desktop]
Server minimo supportato Windows Server 2016 [solo app desktop]
Intestazione cfapi.h

Vedi anche

CfHydratePlaceholder

CF_CALLBACK_TYPE

CF_CALLBACK_DEHYDRATION_REASON