FSCTL_REQUEST_OPLOCK kode kontrol
Kode kontrol FSCTL_REQUEST_OPLOCK meminta kunci oportunistik (oplock) pada file, atau mengakui bahwa pembobolan oplock telah terjadi.
Untuk informasi selengkapnya tentang kunci oportunistik, lihat Kunci Oportunistik dalam dokumentasi Desktop Windows. Untuk informasi selengkapnya tentang kontrol OPLOCK mode pengguna, lihat Kode Kontrol Manajemen File dalam dokumentasi Windows Desktop.
Untuk memproses kode kontrol ini, sistem file atau driver filter memanggil FsRtlOplockFsctrlEx dengan parameter berikut.
Parameter
Oplock: Penunjuk objek oplock buram untuk file.
Irp: Pointer ke IRP untuk permintaan FSCTL IRP_MJ_FILE_SYSTEM_CONTROL. Parameter FsControlCode untuk operasi harus FSCTL_REQUEST_OPLOCK.
OpenCount: Jumlah handel pengguna untuk file jika permintaannya adalah untuk oplock eksklusif. Jika permintaan adalah untuk oplock yang dapat dibagikan, OpenCount adalah nol jika tidak ada kunci rentang byte pada file. Jika tidak, OpenCount bukan nol. Pemanggil dapat memanggil rutinitas FsRtlOplockIsSharedRequest pada IRP untuk menentukan apakah permintaan adalah untuk oplock yang dapat dibagikan.
Bendera: Bitmask untuk operasi oplock terkait. Sistem file atau driver filter mengatur bit untuk menentukan perilaku FsRtlOplockFsctrlEx. Parameter Bendera memiliki opsi berikut:
Nilai Makna OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH (0x00000001) Menentukan bahwa sistem file telah memverifikasi bahwa semua kunci kunci oportunistik cocok pada handel apa pun yang saat ini terbuka. Dengan menentukan bendera ini, paket oplock dapat memberikan oplock level RW atau RWH ketika ada lebih dari satu handel terbuka ke file. Untuk informasi selengkapnya tentang jenis oplock, lihat Gambaran Umum.
Blok status
FsRtlOplockFsctrlEx mengembalikan salah satu nilai NTSTATUS berikut untuk operasi ini:
Kode | Makna |
---|---|
STATUS_PENDING | Oplock diberikan. Ini adalah kode keberhasilan. |
STATUS_CANCELLED | IRP dibatalkan sebelum operasi FSCTL_REQUEST_OPLOCK selesai. Ini adalah kode kesalahan. |
STATUS_OPLOCK_NOT_GRANTED | Oplock tidak dapat diberikan. Ini adalah kode kesalahan. |
Persyaratan
Jenis persyaratan | Persyaratan |
---|---|
Header | Ntifs.h (termasuk Ntifs.h atau Fltkernel.h) |