enumerazione CF_HYDRATION_POLICY_MODIFIER (cfapi.h)

Consente a un provider di sincronizzazione di controllare il modo in cui i file segnaposto devono essere idratati dalla piattaforma. Si tratta di un modificatore che può essere usato con i criteri primari: CF_HYDRATION_POLICY_PRIMARY.

Sintassi

typedef enum CF_HYDRATION_POLICY_MODIFIER {
  CF_HYDRATION_POLICY_MODIFIER_NONE,
  CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED,
  CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED,
  CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED,
  CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION
} ;

Costanti

 
CF_HYDRATION_POLICY_MODIFIER_NONE
0x0000

Nessun modificatore di criteri.
CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED
0x0001

Questo modificatore di criteri offre due garanzie a un provider di sincronizzazione. In primo luogo, garantisce che i dati restituiti dal provider di sincronizzazione vengano sempre salvati in modo permanente sul disco prima di essere restituiti all'applicazione utente. In secondo luogo, consente al provider di sincronizzazione di recuperare gli stessi dati restituiti in precedenza alla piattaforma e convalidarne l'integrità. Solo dopo la conferma dell'integrità da parte del provider di sincronizzazione, la piattaforma completerà la richiesta di I/O dell'utente. Questo modificatore consente di supportare l'integrità dei dati end-to-end a costo di operazioni di I/O aggiuntive su disco.
CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED
0x0002

Questo modificatore di criteri concede alla piattaforma l'autorizzazione per non archiviare dati restituiti da un provider di sincronizzazione su dischi locali. Questo modificatore di criteri è inefficace quando viene combinato con CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED.
CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED
0x0004

Questo modificatore di criteri concede alla piattaforma l'autorizzazione per disidratare i segnaposto dei file cloud sincronizzati senza l'aiuto dei provider di sincronizzazione. Senza questo flag, la piattaforma non può chiamare direttamente CfDehydratePlaceholder . L'unico modo supportato per disidratare un segnaposto del file cloud consiste invece nel cancellare l'attributo aggiunto del file e impostare l'attributo non rimosso del file. A questo punto, la disidratazione effettiva verrà eseguita in modo asincrono dal motore di sincronizzazione dopo che riceve la notifica di modifica della directory sui due attributi. Quando questo flag viene specificato, la piattaforma potrà richiamare CfDehydratePlaceholder direttamente su qualsiasi segnaposto del file cloud sincronizzato. È consigliabile che i provider di sincronizzazione supportino la disidratazione automatica.

NOTA

Questo valore è disponibile in Windows 10 versione 1803 e successive.

CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION
0x0008

Questo modificatore di criteri concede l'autorizzazione della piattaforma per idratare completamente un file in modo sincrono quando intercetta un tentativo da parte di un filtro AV per analizzare il file. I provider di sincronizzazione che desiderano usare RestartHydration per modificare da fileSize un callback FetchData devono acconsentire esplicitamente ALLOW_FULL_RESTART_HYDRATION al criterio per evitare possibili deadlock con software antivirus e antimalware che tentano di analizzare il file e il provider che tenta di modificare fileSize usando RestartHydration.

NOTA

Questo aggiornamento di enumerazione è supportato solo se l'oggetto PlatformVersion.IntegrationNumber ottenuto da CfGetPlatformInfo è 0x500 o superiore.

Commenti

In generale, i modificatori possono essere misti e abbinati a qualsiasi criterio primario (CF_HYDRATION_POLICY_PRIMARY) e ad altri modificatori di criteri, purché la combinazione non sia in conflitto.

Il CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION flag viene aggiunto per evitare che la funzionalità Riavvia idratazione verifichi deadlock causati da rilevatori antivirus e malware (AV). Tutti i provider di sincronizzazione che intendono aggiornare le dimensioni di un file disidratato durante il corso di una richiesta di idratazione devono acconsentire esplicitamente a questa funzionalità o riavviare l'idratazione possono verificarsi deadlock quando un AV tenta di analizzare un file aperto creando una sezione mappata alla memoria del file e che porta all'idratazione. Si noti che i provider che gestiscono snapshot o versioni di un file e soddisfano la richiesta di un utente specificando la versione richiesta del file anche se il file è stato aggiornato nel back-end/server non deve acconsentire esplicitamente a questo criterio. Analogamente, i provider che non soddisfano la richiesta di idratazione nel caso in cui il file sia stato modificato nel back-end potrebbe non acconsentire esplicitamente a questo criterio.

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

Vedi anche

CF_HYDRATION_POLICY_PRIMARY

CfDehydratePlaceholder

CfGetPlatformInfo