Fungsi CcCopyReadEx (ntifs.h)
CcCopyReadEx rutin menyalin data dari file yang di-cache ke buffer pengguna. Jumlah byte I/O untuk operasi dibebankan ke utas penerbit.
Sintaks
BOOLEAN CcCopyReadEx(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[in] BOOLEAN Wait,
[out] PVOID Buffer,
[out] PIO_STATUS_BLOCK IoStatus,
[in] PETHREAD IoIssuerThread
);
Parameter
[in] FileObject
Penunjuk ke objek file untuk file cache tempat data akan dibaca.
[in] FileOffset
Penunjuk ke variabel yang menentukan offset byte awal dalam file yang di-cache.
[in] Length
Panjang byte data yang akan dibaca.
[in] Wait
Atur ke TRUE jika penelepon dapat dimasukkan ke dalam status tunggu hingga semua data telah disalin, FALSE jika tidak.
[out] Buffer
Penunjuk ke buffer tempat data akan disalin.
[out] IoStatus
Penunjuk ke struktur yang dialokasikan penelepon yang menerima status penyelesaian akhir dan informasi tentang operasi. Jika tidak semua data berhasil disalin, IoStatus.Information berisi jumlah byte aktual yang disalin.
[in] IoIssuerThread
Utas mengeluarkan permintaan baca. Untuk sistem file dengan akuntansi I/O disk diaktifkan, ini adalah utas yang dikenakan biaya I/O. Jika IoIssuerThread adalah NULL, I/O dibebankan ke utas saat ini.
Mengembalikan nilai
Rutinitas CcCopyReadEx mengembalikan TRUE jika data berhasil disalin, FALSE jika tidak.
Keterangan
Jika Wait is TRUE, CcCopyReadEx dijamin untuk menyelesaikan permintaan salin dan mengembalikan TRUE. Jika halaman yang diperlukan dari file yang di-cache sudah berada dalam memori, data akan segera disalin dan tidak ada pemblokiran yang akan terjadi. Jika ada halaman yang diperlukan tidak residen, penelepon akan dimasukkan ke dalam status tunggu sampai semua halaman yang diperlukan telah dibuat residen dan data dapat disalin.
Jika Wait is FALSE, CcCopyReadEx akan menolak untuk memblokir, dan akan mengembalikan FALSE, jika halaman yang diperlukan dari file yang di-cache belum berada dalam memori.
FileOffset plus Panjang harus kurang dari atau sama dengan ukuran file yang di-cache, atau kegagalan pernyataan akan terjadi.
Jika terjadi kegagalan, CcCopyReadEx memunculkan pengecualian status untuk kegagalan tertentu tersebut. Misalnya, jika kegagalan alokasi kumpulan terjadi, CcCopyReadEx menimbulkan pengecualian dengan status STATUS_INSUFFICIENT_RESOURCES ; jika terjadi kesalahan I/O, CcCopyReadEx menaikkan pengecualian status kesalahan I/O. Oleh karena itu, untuk mendapatkan kontrol jika kegagalan terjadi, driver harus membungkus panggilan ke CcCopyReadEx dalam pernyataan try-except atau try-finally .
Untuk membuat cache file, gunakan CcInitializeCacheMap.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 |
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h, FltKernel.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk