Fungsi FltOplockFsctrl (fltkernel.h)
FltOplockFsctrl melakukan berbagai operasi kunci oportunistik (oplock) atas nama driver minifilter.
Sintaks
FLT_PREOP_CALLBACK_STATUS FLTAPI FltOplockFsctrl(
[in] POPLOCK Oplock,
[in] PFLT_CALLBACK_DATA CallbackData,
[in] ULONG OpenCount
);
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 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.
Mengembalikan nilai
FltOplockFsctrl 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, FltOplockFsctrl mengembalikan FLT_PREOP_COMPLETE.
Keterangan
Driver minifilter memanggil FltOplockFsctrl untuk melakukan berbagai operasi penguncian oportunistik untuk operasi I/O kontrol sistem buat atau 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, FltOplockFsctrl 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
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 |
---|---|
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