Bagikan melalui


Fungsi CcSetFileSizesEx (ntifs.h)

CcSetFileSizesEx rutin memperbarui peta cache dan objek bagian untuk file cache yang ukurannya telah berubah.

Sintaks

NTSTATUS CcSetFileSizesEx(
  PFILE_OBJECT   FileObject,
  PCC_FILE_SIZES FileSizes
);

Parameter

FileObject

[in] Penunjuk ke objek file untuk file yang di-cache.

FileSizes

[in] Penunjuk ke struktur CC_FILE_SIZES yang berisi informasi ukuran file baru.

Nilai kembali

CcSetFileSizesEx mengembalikan STATUS_SUCCESS jika ukuran file berhasil diubah, dan, jika pembersihan diperlukan agar pembersihan berhasil. Jika tidak, ia mengembalikan kode NSTATUS yang tidak berhasil seperti STATUS_INSUFFICIENT_RESOURCES, dan mungkin menaikkan pengecualian status.

Mengenai menaikkan pengecualian status pada kesalahan:

  • Jika operasi menyebabkan CcSetFileSizesEx membersihkan dan/atau membersihkan file, CcSetFileSizesEx tidak akan menimbulkan kesalahan; itu hanya mengembalikan kode NTSTATUS yang tidak berhasil yang sesuai dari operasi pembersihan atau pembersihan.

  • Jika operasi menyebabkan CcSetFileSizesEx memperluas bagian, maka CcSetFileSizesEx akan muncul pada kesalahan yang ditimbulkannya selama ekstensi ini.

Keterangan

Sistem file harus memanggil CcSetFileSizesEx untuk memperbarui struktur data manajer cache setiap kali salah satu perubahan berikut dilakukan pada file yang di-cache:

  • Ukuran alokasinya meningkat.

  • Panjang data yang valid dikurangi.

  • Panjang data yang valid ditingkatkan oleh operasi I/O yang tidak di-cache.

  • Ukuran filenya ditingkatkan atau dikurangi.

Jika operasi menyebabkan CcSetFileSizesEx memperluas bagian dan kegagalan terjadi, CcSetFileSizesEx menimbulkan pengecualian status untuk kegagalan tertentu tersebut. Misalnya, jika kegagalan alokasi kumpulan terjadi, CcSetFileSizesEx menimbulkan pengecualian STATUS_INSUFFICIENT_RESOURCES. Oleh karena itu, untuk mendapatkan kontrol jika kegagalan terjadi, driver harus membungkus panggilan ke CcSetFileSizesEx dalam pernyataan try-except atau try-finally .

Sistem file harus memastikan bahwa peta cache valid dan akan tetap demikian selama panggilan ini.

Untuk membuat cache file, gunakan CcInitializeCacheMap.

Untuk mendapatkan ukuran file yang di-cache, teruskan FileObject ke CcGetFileSizePointer.

Persyaratan

Persyaratan Nilai
Header ntifs.h

Lihat juga

CcInitializeCacheMap

CcSetCacheFileSizes