Fungsi FltOplockFsctrlEx (fltkernel.h)
Rutinitas FltOplockFsctrlEx melakukan berbagai operasi kunci oportunistik (oplock) atas nama driver minifilter.
Sintaks
FLT_PREOP_CALLBACK_STATUS FLTAPI FltOplockFsctrlEx(
[in] POPLOCK Oplock,
[in] PFLT_CALLBACK_DATA CallbackData,
[in] ULONG OpenCount,
[in] ULONG Flags
);
Parameter
[in] Oplock
Penunjuk oplock buram untuk file. Pointer ini harus diinisialisasi oleh panggilan sebelumnya ke FltInitializeOplock.
[in] CallbackData
Arahkan ke struktur FLT_CALLBACK_DATA untuk operasi I/O. Parameter ini diperlukan dan tidak boleh NULL.
[in] OpenCount
Jumlah handel pengguna untuk file, jika oplock eksklusif sedang diminta. Mengatur nilai bukan nol untuk permintaan oplock tingkat 2, R, atau RH menunjukkan bahwa ada kunci rentang byte pada file. Untuk informasi tentang jenis oplock, lihat Gambaran Umum Oplock.
[in] Flags
Bitmask untuk operasi oplock terkait. Driver minifilter mengatur bit untuk menentukan perilaku FltOplockFsctrlEx. Parameter Bendera memiliki opsi berikut:
Nilai | Makna |
---|---|
OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH (0x00000001) | Sistem file memverifikasi bahwa semua kunci oplock pada handel apa pun yang saat ini terbuka cocok. Dengan menentukan bendera ini, Anda mengizinkan paket oplock untuk memberikan oplock level RW atau RWH ketika ada lebih dari satu handel terbuka ke file. Untuk informasi selengkapnya tentang jenis oplock, lihat Gambaran Umum Oplock. |
Nilai kembali
FltOplockFsctrlEx mengembalikan FLT_PREOP_PENDING untuk beberapa operasi FSCTL. Untuk informasi selengkapnya, lihat halaman referensi untuk kode FSCTL yang tercantum di bagian Keterangan berikut. Jika tidak, FltOplockFsctrlEx mengembalikan FLT_PREOP_COMPLETE.
Keterangan
Driver minifilter memanggil FltOplockFsctrlEx untuk melakukan berbagai operasi penguncian oportunistik untuk operasi pembuatan atau operasi I/O kontrol sistem file.
Struktur FLT_CALLBACK_DATA yang ditunjukkan oleh parameter CallbackData harus mewakili operasi IRP_MJ_FILE_SYSTEM_CONTROL atau IRP_MJ_CREATE berbasis IRP.
Jika operasi adalah operasi IRP_MJ_FILE_SYSTEM_CONTROL, FltOplockFsctrlEx dapat digunakan dengan kode FSCTL berikut:
- FSCTL_OPBATCH_ACK_CLOSE_PENDING
- FSCTL_OPLOCK_BREAK_ACK_NO_2
- FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
- FSCTL_OPLOCK_BREAK_NOTIFY
- FSCTL_REQUEST_BATCH_OPLOCK
- FSCTL_REQUEST_FILTER_OPLOCK
- FSCTL_REQUEST_OPLOCK_LEVEL_1
- FSCTL_REQUEST_OPLOCK_LEVEL_2
- FSCTL_REQUEST_OPLOCK
Kode FSCTL diatur dalam anggota FsControlCode dari struktur FLT_PARAMETERS untuk operasi. Untuk informasi selengkapnya tentang FsControlCode dan parameter IRP_MJ_FILE_SYSTEM_CONTROL lainnya, lihat FLT_PARAMETERS untuk IRP_MJ_FILE_SYSTEM_CONTROL.
Untuk informasi selengkapnya tentang kunci oportunistik, lihat dokumentasi Microsoft Windows SDK.
Jika operasi adalah permintaan IRP_MJ_CREATE , FltOplockFsctrl dapat digunakan untuk meminta kunci oportunistik filter yang tertunda jika semua kondisi berikut ini benar:
- Nilai parameter OpenCount harus 1.
- Nilai parameter DesiredAccess untuk permintaan IRP_MJ_CREATE FILE_READ_ATTRIBUTES. Parameter ini diatur dalam anggota SecurityContext dari struktur FLT_PARAMETERS untuk operasi. Untuk informasi selengkapnya, lihat FLT_PARAMETERS untuk IRP_MJ_CREATE.
- Nilai parameter ShareAccess untuk operasi IRP_MJ_CREATE adalah FILE_SHARE_READ, FILE_SHARE_WRITE, atau FILE_SHARE_DELETE. Parameter ini diatur dalam anggota ShareAccess dari struktur FLT_PARAMETERS untuk operasi. Untuk informasi selengkapnya, lihat FLT_PARAMETERS untuk IRP_MJ_CREATE.
Filter dan sistem file yang memanggil fungsi ini harus menyinkronkan panggilan ke dalam paket oplock yang disediakan sistem. Lihat Sinkronisasi Oplock untuk informasi selengkapnya.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Rutinitas ini tersedia dimulai dengan Windows 8. |
Target Platform | Universal |
Header | fltkernel.h (termasuk Fltkernel.h) |
Pustaka | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |
Lihat juga
FLT_PARAMETERS untuk IRP_MJ_CREATE
FLT_PARAMETERS untuk IRP_MJ_FILE_SYSTEM_CONTROL
FSCTL_OPBATCH_ACK_CLOSE_PENDING
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