Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Struktur ini berisi parameter khusus panggilan balik seperti offset file, panjang, bendera, dll.
Sintaks
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;
Anggota
ParamSize
ParamSize diatur berdasarkan panggilan balik yang sedang dilakukan.
| Panggilan Balik | Informasi ParamSize |
|---|---|
| CF_CALLBACK_TYPE_FETCH_DATA | Atur ke ukuran FetchData plus ukuran ULONG. |
| CF_CALLBACK_TYPE_VALIDATE_DATA | Atur ke ukuran ValidateData plus ukuran ULONG. |
| CF_CALLBACK_TYPE_CANCEL_FETCH_DATA | Atur ke ukuran Cancel.FetchData plus ukuran dua ULONGd. |
| CF_CALLBACK_TYPE_FETCH_PLACHOLDERS | Atur ke ukuran FetchPlaceholders plus ukuran ULONG. |
| CF_CALLBACK_TYPE_CANCEL_FETCH_PLACHOLDERS | Atur ke ukuran dua ULONGs. |
| CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION | Atur ke ukuran OpenCompletion plus ukuran ULONG. |
| CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION | diatur ke ukuran CloseCompletion plus ukuran ULONG. |
| CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE | Atur ke ukuran Dehydrate plus ukuran ULONG. |
| CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION | Atur ke ukuran DehydrateCompletion plus ukuran ULONG. |
| CF_CALLBACK_TYPE_NOTIFY_DELETE | Atur ke ukuran Delete plus ukuran ULONG. |
| CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION | Atur ke ukuran DeleteCompletion plus ukuran ULONG. |
| CF_CALLBACK_TYPE_NOTIFY_RENAME | Atur ke ukuran Rename plus ukuran ULONG. |
| CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION | Atur ke ukuran RenameCompletion plus ukuran ULONG. |
DUMMYUNIONNAME
DUMMYUNIONNAME.Cancel
DUMMYUNIONNAME.Cancel.Flags
Bendera dapat diatur ke bendera berikut:
- CF_CALLBACK_CANCEL_FLAG_IO_TIMEOUT diatur jika permintaan pengguna dibatalkan sebagai akibat dari kedaluwarsa timer 60 detik.
- CF_CALLBACK_CANCEL_FLAG_IO_ABORTED diatur jika permintaan pengguna dibatalkan sebagai akibat dari pengguna secara eksplisit mengakhiri hidrasi dari toast unduhan yang dimulai aplikasi.
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.FileOffset
Offset, dalam byte, untuk menentukan rentang data file yang tidak lagi diperlukan. Perhatikan bahwa ini mungkin cocok dengan RequiredFileOffset dari pengambilan yang sesuai, tetapi mungkin juga merupakan subset. Jika itu adalah subset, maka data di luar rentang pembatalan masih diperlukan, misalnya untuk memenuhi operasi I/O yang luar biasa yang tiba kemudian.
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.Length
Panjang, dalam byte, dari data file yang tidak lagi diperlukan. Perhatikan bahwa ini mungkin cocok dengan RequiredLength dari pengambilan yang sesuai, tetapi mungkin juga merupakan subset. Jika itu adalah subset, maka data di luar rentang pembatalan masih diperlukan, misalnya untuk memenuhi operasi I/O yang luar biasa yang tiba kemudian.
DUMMYUNIONNAME.FetchData
DUMMYUNIONNAME.FetchData.Flags
Bendera dapat diatur ke nilai berikut:
- CF_CALLBACK_FETCH_DATA_FLAG_RECOVER diatur jika panggilan balik dipanggil sebagai akibat dari proses hidrasi yang terganggu sebelumnya, karena penonaktifan penyedia sinkronisasi atau kehilangan daya yang tidak bersih, dll.
- CF_CALLBACK_FETCH_DATA_FLAG_EXPLICIT_HYDRATION diatur jika panggilan balik dipanggil sebagai akibat dari panggilan ke CfHydratePlaceholder.
DUMMYUNIONNAME.FetchData.RequiredFileOffset
Offset, dalam byte, untuk menentukan rentang data file yang benar-benar diperlukan oleh filter untuk memenuhi permintaan I/O yang luar biasa.
DUMMYUNIONNAME.FetchData.RequiredLength
Panjang, dalam byte, dari data file yang benar-benar diperlukan oleh filter untuk memenuhi permintaan I/O yang luar biasa.
DUMMYUNIONNAME.FetchData.OptionalFileOffset
Offset, dalam byte, disediakan sebagai petunjuk untuk berbagai data file yang lebih luas yang dapat berguna diberikan ke platform, jika penyedia sinkronisasi lebih suka memberikan data dalam gugus yang lebih besar. Biasanya rentang opsional akan menjadi rentang berdampingan maksimal yang saat ini tidak ada di tempat penampung. Ini opsional dan dapat digunakan jika penyedia sinkronisasi lebih suka bekerja dengan segmen data yang lebih besar.
DUMMYUNIONNAME.FetchData.OptionalLength
Panjangnya, dalam byte, disediakan sebagai petunjuk untuk berbagai data file yang lebih luas yang dapat berguna diberikan ke platform, jika penyedia sinkronisasi lebih suka memberikan data dalam gugus yang lebih besar. Biasanya rentang opsional akan menjadi rentang berdampingan maksimal yang saat ini tidak ada di tempat penampung. Ini opsional dan dapat digunakan jika penyedia sinkronisasi lebih suka bekerja dengan segmen data yang lebih besar.
Panjang -1, ditandai sebagai CF_EOF, berarti tak terbatas (yaitu ke akhir file).
Tidak ada persyaratan bagi penyedia sinkronisasi untuk mengembalikan semua data yang diperlukan sekaligus. Tidak ada juga persyaratan bagi penyedia sinkronisasi untuk mengembalikan data dalam rentang yang diperlukan atau rentang opsional. Platform memastikan dalam keadaan apa pun tidak akan memodifikasi/tidak menyinkronkan data file disumbat karena operasi CF_OPERATION_TYPE_TRANSFER_DATA yang tidak valid. Namun, data yang dikembalikan harus selaras 4KB untuk offset dan panjang kecuali rentang yang dikembalikan berakhir pada akhir file, dalam hal ini panjangnya tidak harus selaras 4KB jika rentang berakhir pada atau di luar akhir file.
DUMMYUNIONNAME.FetchData.LastDehydrationTime
Waktu sistem ketika file cloud yang dimaksud mengalami dehidrasi. Ini adalah hitungan interval 100 nanodetik sejak 1 Januari 1601.
DUMMYUNIONNAME.FetchData.LastDehydrationReason
Anggota enumerasi CF_CALLBACK_DEHYDRATION_REASON yang menentukan alasan file terakhir mengalami dehidrasi.
LastDehydrationReason bisa menjadi salah satu hal berikut:
| Alasan | Deskripsi |
|---|---|
| CF_CALLBACK_DEHYDRATE_REASON_NEVER | File cloud tidak pernah didehidrasi setelah pembuatannya. |
| CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | Pengguna secara eksplisit mendehidrasi file cloud. |
| CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_PERIODIC | Platform menua file cloud berdasarkan kebijakan yang ditentukan pengguna. |
| CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOWSPACE | Platform mengalami dehidrasi file cloud saat mengalami ruang disk yang rendah pada volume tempat file ini berada. |
| CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_UPGRADE | Platform mendehidrasi file ini saat mengklaim kembali ruang disk untuk meningkatkan OS. |
DUMMYUNIONNAME.ValidateData
DUMMYUNIONNAME.ValidateData.Flags
Bendera validasi data. CF_CALLBACK_VALIDATE_DATA_FLAG_EXPLICIT_HYDRATION diatur jika panggilan balik dipanggil sebagai akibat dari panggilan ke CfHydratePlaceholder.
DUMMYUNIONNAME.ValidateData.RequiredFileOffset
Offset, dalam byte, untuk menentukan rentang data file yang akan divalidasi.
DUMMYUNIONNAME.ValidateData.RequiredLength
Panjang, dalam byte, dari rentang data file yang perlu divalidasi. Panjang -1, ditandai sebagai CF_EOF, berarti tak terbatas (yaitu ke akhir file).
Tidak ada persyaratan bagi penyedia sinkronisasi untuk mengakui semua data yang diperlukan sekaligus. Tidak ada juga persyaratan bagi penyedia sinkronisasi untuk mengakui data dalam rentang yang diperlukan. Platform memastikan dalam keadaan apa pun tidak akan memodifikasi/tidak menyinkronkan data file disumbat karena operasi CF_OPERATION_TYPE_ACT_DATA yang tidak valid. Namun, data yang diakui harus selaras 4KB untuk offset dan panjang kecuali rentang yang dikembalikan berakhir pada akhir file, dalam hal ini panjangnya tidak diperlukan untuk selaras 4KB jika rentang berakhir pada atau di luar akhir file.
DUMMYUNIONNAME.FetchPlaceholders
DUMMYUNIONNAME.FetchPlaceholders.Flags
Nilai Bendera ini harus diatur ke CF_CALLBACK_FETCH_PLACEHOLDERS_FLAG_NONE.
DUMMYUNIONNAME.FetchPlaceholders.Pattern
Pola file Windows standar yang mungkin berisi karakter kartubebas (?, *). Seringkali polanya akan tetapi * bisa lebih spesifik. Penyedia sinkronisasi diharapkan mulai mentransfer informasi tempat penampung untuk semua file dalam direktori menggunakan CF_OPERATION_TYPE_TRANSFER_PLACEHOLDERS. Penyedia sinkronisasi harus mentransfer semua tempat penampung yang cocok dengan pola tetapi tidak harus dalam satu bidikan, sebagai persyaratan minimum. Penyedia sinkronisasi juga dapat memilih untuk mentransfer tempat penampung yang tidak cocok dengan pola.
DUMMYUNIONNAME.OpenCompletion
DUMMYUNIONNAME.OpenCompletion.Flags
Tempat penampung membuka bendera penyelesaian. Ini dapat diatur ke salah satu dari dua bendera berikut:
- CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNKNOWN diatur jika metadata tempat penampung rusak.
- CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNSUPPORTED diatur jika metadata tempat penampung adalah versi yang lebih lama dan tidak didukung.
DUMMYUNIONNAME.CloseCompletion
DUMMYUNIONNAME.CloseCompletion.Flags
Tempat penampung menutup bendera penyelesaian. Ini dapat diatur ke CF_CALLBACK_CLOSE_COMPLETION_FLAG_DELETED jika tempat penampung dihapus sebagai akibat dari penutupan.
DUMMYUNIONNAME.Dehydrate
DUMMYUNIONNAME.Dehydrate.Flags
Bendera dehidrasi tempat penampung. Ini dapat diatur ke CF_CALLBACK_DEHYDRATE_FLAG_BACKGROUND jika permintaan dehidrasi dimulai oleh layanan latar belakang sistem.
DUMMYUNIONNAME.Dehydrate.Reason
Alasan adalah anggota enumerasi CF_CALLBACK_DEHYDRATION_REASON yang menentukan alasan mengapa tempat penampung sedang dehidrasi. Jenis dapat berupa salah satu dari nilai berikut:
| Alasan | Deskripsi |
|---|---|
| CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | Pengguna secara eksplisit meminta untuk melakukan dehidrasi file cloud. |
| CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY | Platform menua file cloud secara berkala berdasarkan kebijakan yang ditentukan pengguna. |
| CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE | Platform ini mengalami ruang disk yang rendah pada volume tempat file cloud ini berada. |
| CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE | Platform ini mengklaim kembali ruang disk untuk meningkatkan OS. |
DUMMYUNIONNAME.DehydrateCompletion
DUMMYUNIONNAME.DehydrateCompletion.Flags
Bendera penyelesaian dehidrasi tempat penampung. Ini dapat diatur ke nilai berikut:
- CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_BACKGROUND diatur jika permintaan dehidrasi dimulai oleh layanan latar belakang sistem.
- CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_DEHYDRATED diatur jika placer dihidrasi sebelum permintaan dehidrasi.
DUMMYUNIONNAME.DehydrateCompletion.Reason
Alasan adalah anggota enumerasi CF_CALLBACK_DEHYDRATION_REASON yang menentukan alasan mengapa tempat penampung mengalami dehidrasi. Jenis dapat berupa salah satu dari nilai berikut:
| Alasan | Deskripsi |
|---|---|
| CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | Pengguna secara eksplisit meminta untuk melakukan dehidrasi file cloud. |
| CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY | Platform menua file cloud secara berkala berdasarkan kebijakan yang ditentukan pengguna. |
| CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE | Platform ini mengalami ruang disk yang rendah pada volume tempat file cloud ini berada. |
| CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE | Platform ini mengklaim kembali ruang disk untuk meningkatkan OS. |
DUMMYUNIONNAME.Delete
DUMMYUNIONNAME.Delete.Flags
Bendera penghapusan tempat penampung. Ini diatur ke CF_CALLBACK_DELETE_FLAG_NONE.
DUMMYUNIONNAME.DeleteCompletion
DUMMYUNIONNAME.DeleteCompletion.Flags
Penghapusan tempat penampung menyelesaikan bendera. Ini diatur ke CF_CALLBACK_DELETE_COMPLETION_FLAG_NONE.
DUMMYUNIONNAME.Rename
DUMMYUNIONNAME.Rename.Flags
Ganti nama bendera tempat penampung. Ini dapat diatur ke nilai berikut:
- CF_CALLBACK_RENAME_FLAG_IS_DIRECTORY diatur jika tempat penampung adalah direktori.
- CF_CALLBACK_RENAME_FLAG_SOURCE_IN_SCOPE diatur jika tautan yang akan diganti namanya atau dipindahkan berada dalam akar sinkronisasi yang dikelola oleh proses sinkronisasi.
- CF_CALLBACK_RENAME_FLAG_TARGET_IN_SCOPE diatur jika target penggantian nama atau pemindahan berada di akar sinkronisasi yang sama dari jalur sumber.
DUMMYUNIONNAME.Rename.TargetPath
Jalur target penggantian nama/pemindahan penuh relatif terhadap volume.
DUMMYUNIONNAME.RenameCompletion
DUMMYUNIONNAME.RenameCompletion.Flags
Bendera tempat penampung penggantian nama penyelesaian. Ini diatur ke CF_CALLBACK_RENAME_COMPLETION_FLAG_NONE.
DUMMYUNIONNAME.RenameCompletion.SourcePath
Jalur tautan sumber lengkap relatif terhadap volume.
Persyaratan
| Klien minimum yang didukung | Windows 10, versi 1709 [hanya aplikasi desktop] |
| Server minimum yang didukung | Windows Server 2016 [hanya aplikasi desktop] |
| Header | cfapi.h |