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