enumerazione CF_CALLBACK_TYPE (cfapi.h)
Contiene i vari tipi di callback utilizzati nei file segnaposto o nelle cartelle.
Sintassi
typedef enum CF_CALLBACK_TYPE {
CF_CALLBACK_TYPE_FETCH_DATA,
CF_CALLBACK_TYPE_VALIDATE_DATA,
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA,
CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS,
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS,
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION,
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION,
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE,
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION,
CF_CALLBACK_TYPE_NOTIFY_DELETE,
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION,
CF_CALLBACK_TYPE_NOTIFY_RENAME,
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION,
CF_CALLBACK_TYPE_NONE = 0xffffffff
} ;
Costanti
CF_CALLBACK_TYPE_FETCH_DATA Questo callback viene usato per chiedere al provider di sincronizzazione un intervallo di dati di file necessari per soddisfare una richiesta di I/O o una richiesta esplicita di idratazione su un segnaposto. L'implementazione di questo callback è necessaria se il provider di sincronizzazione specifica un criterio di idratazione che non è ALWAYS_FULL all'ora di registrazione radice della sincronizzazione. |
CF_CALLBACK_TYPE_VALIDATE_DATA Questo callback viene usato per chiedere al provider di sincronizzazione di confermare che un determinato intervallo di dati di file, che è già presente su disco dalle precedenti operazioni di CF_OPERATION_TYPE_TRANSFER_DATA , è valido e pertanto può essere usato dalla piattaforma per soddisfare le richieste di I/O dell'utente. L'implementazione di questo callback è necessaria solo se il provider di sincronizzazione specifica il modificatore dei criteri di idratazione VALIDATION_REQUIRED all'ora di registrazione radice della sincronizzazione. |
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA Questo callback viene usato per informare il provider di sincronizzazione che un intervallo di dati di file non è più necessario, in genere perché la richiesta di origine è stata annullata. Ciò consente al provider di sincronizzazione di interrompere la spesa per tentare di ottenere i dati (annullare le richieste di rete in sospeso e così via). L'implementazione di questo callback è facoltativa. |
CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS Questo callback viene usato per chiedere al provider di sincronizzazione di fornire informazioni sul contenuto di una directory segnaposto per soddisfare un'operazione di query di directory o un tentativo di aprire un file sotto la directory. L'implementazione di questo callback è necessaria solo se il provider di sincronizzazione specifica un criterio diverso da CF_POPULATION_POLICY_ALWAYS_FULL all'ora di registrazione radice della sincronizzazione. |
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS Questo callback viene utilizzato per informare il provider di sincronizzazione che il contenuto di una directory segnaposto non è più necessario, in genere perché la richiesta di origine è stata annullata. Ciò consente al provider di sincronizzazione di interrompere la spesa per tentare di ottenere il contenuto (annullare le richieste di rete in sospeso e così via). L'implementazione di questo callback è facoltativa. |
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION Questo callback viene usato per informare il provider di sincronizzazione che un segnaposto con una delle relative radici di sincronizzazione è stato aperto correttamente per l'accesso in lettura/scrittura/eliminazione. L'applicazione utente che esegue l'apertura non è bloccata. Non è prevista alcuna risposta dal provider di sincronizzazione. Questa notifica non si applica alle directory. L'implementazione di questo callback è facoltativa. |
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION Questo callback viene usato per informare il provider di sincronizzazione che un segnaposto con una delle radici di sincronizzazione precedentemente aperte per l'accesso in lettura/scrittura/eliminazione è ora chiuso. L'applicazione utente che esegue la chiusura non è bloccata. Non è prevista alcuna risposta dal provider di sincronizzazione. Questa notifica non si applica alle directory. L'implementazione di questo callback è facoltativa. |
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE Questo callback viene usato per informare il provider di sincronizzazione che un segnaposto in una della radice di sincronizzazione sta per essere disidratato. L'applicazione utente che esegue la disidratazione è bloccata. È prevista una risposta dal provider di sincronizzazione. L'implementazione di questo callback è facoltativa. |
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION Questo callback viene usato per informare il provider di sincronizzazione che un segnaposto con una delle radici di sincronizzazione è stato disidratato correttamente. L'applicazione utente che esegue la disidratazione non è bloccata. Non è prevista alcuna risposta dal provider di sincronizzazione. L'implementazione di questo callback è facoltativa. |
CF_CALLBACK_TYPE_NOTIFY_DELETE Questo callback viene usato per informare il provider di sincronizzazione che un segnaposto con una delle relative radici di sincronizzazione sta per essere eliminato. L'applicazione utente che esegue l'eliminazione è bloccata. È prevista una risposta dal provider di sincronizzazione. L'implementazione di questo callback è facoltativa. |
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION Questo callback viene usato per informare il provider di sincronizzazione che un segnaposto con una delle relative radici di sincronizzazione è stato eliminato correttamente. L'applicazione utente che esegue l'eliminazione non è bloccata. Non è prevista alcuna risposta dal provider di sincronizzazione. L'implementazione di questo callback è facoltativa. |
CF_CALLBACK_TYPE_NOTIFY_RENAME Questo callback viene usato per informare il provider di sincronizzazione che un segnaposto con una delle relative radici di sincronizzazione sta per essere rinominato o spostato. L'applicazione utente che esegue la ridenominazione/spostamento è bloccata. È prevista una risposta dal provider di sincronizzazione. L'implementazione di questo callback è facoltativa. |
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION Questo callback viene usato per informare il provider di sincronizzazione che un segnaposto con una delle relative radici di sincronizzazione è stato rinominato o spostato correttamente. L'applicazione utente che esegue la ridenominazione/spostamento non è bloccata. Non è prevista alcuna risposta dal provider di sincronizzazione. L'implementazione di questo callback è facoltativa. |
CF_CALLBACK_TYPE_NONE Valore: 0xffffffff Nessun tipo di callback. |
Commenti
Non si tratta di API fornite dalla libreria, ma di callback che un provider di sincronizzazione deve implementare per soddisfare le richieste dalla piattaforma. Se necessario, la piattaforma chiederà all'istanza della libreria in esecuzione all'interno del processo del provider di sincronizzazione di richiamare la routine di callback appropriata.
Le routine di callback verranno richiamate in un thread arbitrario (parte di un pool di thread). Più callback possono verificarsi contemporaneamente, in thread diversi ed è responsabilità del codice del provider di sincronizzazione implementare qualsiasi sincronizzazione necessaria per garantire un funzionamento affidabile. Tutti i callback sono asincroni. Le richieste utente asincrone che attivano i callback vengono sospese e il controllo viene restituito all'applicazione utente.
Ogni richiesta di callback ha un timeout fisso di 60 secondi. Un'operazione valida su qualsiasi richiesta in sospeso dal provider di sincronizzazione reimposta i timer di tutte le richieste in sospeso.
Tutte le funzioni di callback hanno lo stesso prototipo con due argomenti: una struttura CF_CALLBACK_INFO e una struttura CF_CALLBACK_PARAMETERS .
Le routine di callback non hanno alcun valore restituito.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 versione 1709 [solo app desktop] |
Server minimo supportato | Windows Server 2016 [solo app desktop] |
Intestazione | cfapi.h |