Baca dalam bahasa Inggris

Bagikan melalui


struktur CF_SYNC_POLICIES (cfapi.h)

Menentukan kebijakan sinkronisasi yang digunakan oleh akar sinkronisasi.

Sintaks

typedef struct CF_SYNC_POLICIES {
  ULONG                            StructSize;
  CF_HYDRATION_POLICY              Hydration;
  CF_POPULATION_POLICY             Population;
  CF_INSYNC_POLICY                 InSync;
  CF_HARDLINK_POLICY               HardLink;
  CF_PLACEHOLDER_MANAGEMENT_POLICY PlaceholderManagement;
} CF_SYNC_POLICIES;

Anggota

StructSize

Ukuran CF_SYNC_POLICIES struktur.

Hydration

Kebijakan hidrasi memungkinkan penyedia sinkronisasi untuk mengontrol bagaimana file tempat penampung harus dihidrasi oleh platform. Ini terdiri dari kebijakan utama dan serangkaian pengubah kebijakan.

Kebijakan utama memiliki empat nilai yang mungkin:

Kebijakan Deskripsi
ALWAYS_FULL Ketika ALWAYS_FULL dipilih, platform akan gagal, dengan HRESULT ERROR_CLOUD_FILE_INVALID_REQUEST, operasi tempat penampung apa pun yang dapat mengakibatkan tempat penampung yang tidak sepenuhnya terhidrasi, yang mencakup CfCreatePlaceholders, CfDehydratePlaceholder, CfUpdatePlaceholder dengan opsi dehidrasi , dan CfConvertPlaceholder dengan opsi dehidrasi .
PENUH Ketika FULL dipilih, platform akan memungkinkan tempat penampung mengalami dehidrasi. Ketika platform mendeteksi akses ke tempat penampung yang didehidrasi, platform akan memastikan bahwa konten lengkap tempat penampung tersedia secara lokal sebelum menyelesaikan permintaan IO pengguna, bahkan jika permintaan hanya meminta 1 byte.
PROGRESIF Ketika PROGRESSIVE dipilih, platform akan memungkinkan tempat penampung mengalami dehidrasi. Ketika platform mendeteksi akses ke tempat penampung yang didehidrasi, platform akan menyelesaikan permintaan IO pengguna segera setelah menentukan bahwa data yang memadai diterima dari penyedia sinkronisasi. Namun, platform berjanji untuk terus meminta konten yang tersisa di tempat penampung dari penyedia sinkronisasi di latar belakang sampai konten lengkap tempat penampung tersedia secara lokal atau handel pengguna terakhir pada tempat penampung ditutup.

Perhatikan bahwa penyedia sinkronisasi yang ikut serta PROGRESSIVE mungkin tidak menganggap bahwa panggilan balik hidrasi tiba secara berurutan dari offset 0. Dengan kata lain, penyedia sinkronisasi dengan PROGRESSIVE kebijakan diharapkan menangani pencarian acak pada tempat penampung.
SEBAGIAN Kebijakan PARTIAL ini sangat mirip PROGRESSIVEdengan . Satu-satunya perbedaan antara keduanya adalah kurangnya hidrasi berkelanjutan di latar belakang dengan PARTIAL kebijakan.

Tiga pengubah kebijakan saat ini didukung: VALIDATION_REQUIRED, , STREAMING_ALLOWEDdan AUTO_DEHYDRATION_ALLOWED. Secara umum, pengubah dapat dicampur dan dicocokkan dengan kebijakan utama dan pengubah kebijakan lainnya selama kombinasi tidak bertentangan sendiri.

Pengubah kebijakan Deskripsi
VALIDATION_REQUIRED Pengubah kebijakan ini menawarkan dua jaminan kepada penyedia sinkronisasi. Pertama, ini menjamin bahwa data yang dikembalikan oleh penyedia sinkronisasi selalu disimpan ke disk sebelum dikembalikan ke aplikasi pengguna. Kedua, ini memungkinkan penyedia sinkronisasi untuk mengambil data yang sama yang telah dikembalikan sebelumnya ke platform dan memvalidasi integritasnya. Hanya setelah konfirmasi integritas yang berhasil oleh penyedia sinkronisasi, platform akan menyelesaikan permintaan IO pengguna. Pengubah ini membantu mendukung integritas data end-to-end dengan biaya IO disk tambahan.
STREAMING_ALLOWED Pengubah kebijakan ini memberi platform izin untuk tidak menyimpan data apa pun yang dikembalikan oleh penyedia sinkronisasi pada disk lokal. Pengubah kebijakan ini saling eksklusif dengan VALIDATION_REQUIRED. API gagal dengan ERROR_INVALID_PARAMETER ketika kedua bendera ditentukan.
AUTO_DEHYDRATION_ALLOWED Pengubah kebijakan ini memberi platform izin untuk mendehidrasi tempat penampung file cloud dalam sinkronisasi tanpa bantuan penyedia sinkronisasi. Tanpa bendera ini, platform tidak diizinkan untuk memanggil CfDehydratePlaceholder secara langsung. Sebaliknya, satu-satunya cara yang didukung untuk mendehidrasi tempat penampung file cloud adalah dengan menghapus atribut file yang disematkan dan mengatur atribut file yang tidak disematkan. Kemudian dehidrasi aktual akan dilakukan secara asinkron oleh mesin sinkronisasi setelah menerima pemberitahuan perubahan direktori pada dua atribut. Ketika bendera ini ditentukan, platform akan diizinkan untuk memanggil CfDehydratePlaceholder langsung pada tempat penampung file cloud dalam sinkronisasi. Disarankan bagi penyedia sinkronisasi untuk mendukung dehidrasi otomatis.
ALLOW_FULL_RESTART_HYDRATION Pengubah kebijakan ini memberikan izin platform untuk sepenuhnya menghidrasi file secara sinkron ketika mencegat upaya oleh Filter AV untuk memindai file. Penyedia sinkronisasi yang ingin menggunakan RestartHydration untuk mengubah fileSize dari panggilan balik FetchData harus ikut serta untuk kebijakan guna ALLOW_FULL_RESTART_HYDRATION menghindari kemungkinan kebuntuan dengan perangkat lunak anti-virus dan anti-malware yang mencoba memindai file dan penyedia yang mencoba mengubah fileSize menggunakan RestartHydration.

Catatan: Pengubah ini hanya didukung jika PlatformVersion.IntegrationNumber diperoleh dari CfGetPlatformInfo0x500 atau lebih tinggi.

Population

Kebijakan populasi memungkinkan penyedia sinkronisasi untuk mengontrol bagaimana namespace layanan tempat penampung, baik direktori maupun file, harus dibuat oleh platform. Saat ini ada tiga kebijakan utama tanpa pengubah yang ditentukan:

Kebijakan Deskripsi
ALWAYS_FULL Ketika ALWAYS_FULL dipilih, platform mengasumsikan bahwa ruang nama lengkap selalu tersedia secara lokal. Ini tidak akan pernah meneruskan permintaan enumerasi direktori apa pun ke penyedia sinkronisasi.
PENUH FULL Dengan kebijakan populasi, ketika platform mendeteksi akses pada direktori yang tidak sepenuhnya terisi, ia akan meminta penyedia sinkronisasi mengembalikan semua entri di bawah direktori sebelum menyelesaikan permintaan pengguna.
SEBAGIAN PARTIAL Dengan kebijakan populasi, ketika platform mendeteksi akses pada direktori yang tidak sepenuhnya terisi, itu hanya akan meminta entri yang diperlukan oleh aplikasi pengguna dari penyedia sinkronisasi.

InSync

Kebijakan ini InSync memungkinkan penyedia sinkronisasi untuk mengontrol kapan platform harus menghapus status dalam sinkronisasi pada tempat penampung. Selain selalu menghapus sinkronisasi pada modifikasi data apa pun, platform saat ini dapat menghapus sinkronisasi pada perubahan kombinasi tiga atribut file (ReadOnly, System, dan Hidden) dan dua kali file (CreateTime dan LastWriteTime). Kebijakan ini dapat diterapkan ke file dan direktori secara terpisah.

HardLink

Secara default, platform tidak mengizinkan tautan keras dibuat pada tempat penampung apa pun. Namun, penyedia sinkronisasi yang mampu menangani tautan keras dapat menginstruksikan platform untuk mengaktifkan dukungan melalui ALLOWED kebijakan. Dengan kebijakan ini, aplikasi dapat membuat tautan keras sebanyak yang didukung sistem file selama tautan berada di bawah akar sinkronisasi yang sama atau tanpa akar sinkronisasi. Platform akan memaksa tempat penampung untuk dihidrasi ketika tautan out-of-sync-root pertama diperkenalkan dan mengembalikan tempat penampung ke file normal ketika tautan in-sync-root terakhirnya dihapus. Pembuatan hardlink yang tidak kompatibel dengan kebijakan akan gagal dengan HRESULT ERROR_CLOUD_FILES_INCOMPATIBLE_HARDLINKS. Operasi tempat penampung yang tidak kompatibel dengan kebijakan juga akan gagal dengan ERROR_CLOUD_FILES_INCOMPATIBLE_HARDLINKS.

PlaceholderManagement

Secara default, hanya penyedia sinkronisasi yang dapat melakukan operasi manajemen tempat penampung di akar sinkronisasi. Proses penyedia nonsinkron dapat melakukan operasi manajemen tempat penampung hanya jika akar sinkronisasi tidak aktif (yaitu, ketika tidak ada penyedia sinkronisasi yang terhubung ke akar sinkronisasi.) Kebijakan ini, ketika diaktifkan, memungkinkan proses penyedia nonsinkron untuk melakukan operasi manajemen tempat penampung masing-masing di akar sinkronisasi aktif. CF_PLACEHOLDER_MANAGEMENT_POLICY_DEFAULT adalah kebijakan default, yang hanya memungkinkan penyedia sinkronisasi yang terhubung untuk melakukan operasi manajemen tempat penampung apa pun. Tiga kebijakan di bawah ini dapat ditentukan dalam kombinasi apa pun:

Kebijakan Deskripsi
CF_PLACEHOLDER_MANAGEMENT_POLICY_CREATE_UNRESTRICTED Ketika kebijakan ini ditentukan selama pendaftaran, proses apa pun dapat membuat tempat penampung dalam akar sinkronisasi aktif dengan memanggil CfCreatePlaceholders.
CF_PLACEHOLDER_MANAGEMENT_POLICY_CONVERT_UNRESTRICTED Ketika kebijakan ini ditentukan selama pendaftaran, proses apa pun dapat mengonversi file atau direktori dalam akar sinkronisasi aktif ke tempat penampung dengan memanggil CfConvertToPlaceholder.
CF_PLACEHOLDER_MANAGEMENT_POLICY_UPDATE_UNRESTRICTED Ketika kebijakan ini ditentukan selama pendaftaran, proses apa pun dapat memperbarui tempat penampung dalam akar sinkronisasi aktif melalui API CfUpdatePlaceholder.

Catatan

Bendera ini hanya didukung jika PlatformVersion.IntegrationNumber yang diperoleh dari CfGetPlatformInfo adalah 0x310 atau lebih tinggi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10, versi 1709 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2016 [hanya aplikasi desktop]
Header cfapi.h

Lihat juga

CfCreatePlaceholders

CfConvertToPlaceholder

CfGetPlatformInfo