Bagikan melalui


struktur CF_CALLBACK_PARAMETERS (cfapi.h)

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

Lihat juga

CfHydratePlaceholder

CF_CALLBACK_TYPE

CF_CALLBACK_DEHYDRATION_REASON