Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ada berbagai jenis pengakuan yang dapat dikembalikan oleh pemilik oplock. Mirip dengan permintaan hibah, pengakuan ini dikirim sebagai kode kontrol sistem file (yaitu, FSCTLs). Mereka adalah:
Pengakuan Pemutusan Oplock FSCTL
- FSCTL ini menunjukkan bahwa pemilik oplock telah menyelesaikan sinkronisasi aliran dan mereka menerima tingkat di mana oplock terputus (entah Tingkat 2 atau Tidak Ada).
FSCTL_OPLOCK_BREAK_ACK_NO_2
- FSCTL ini menunjukkan bahwa pemilik oplock telah menyelesaikan sinkronisasi aliran tetapi tidak menginginkan oplock Level 2. Sebaliknya, oplock harus dipecah menjadi Tidak Ada (yaitu, oplock akan dilepaskan sepenuhnya).
FSCTL_OPBATCH_ACK_CLOSE_PENDING
- Untuk oplock Level 1, FSCTL ini menunjukkan bahwa pemilik oplock telah menyelesaikan sinkronisasi aliran (stream) dan melepaskan oplock sepenuhnya (tidak ada oplock Level 2 yang dapat dihasilkan dari pengakuan ini).
- Untuk oplock Batch atau Filter, FSCTL ini menunjukkan bahwa pemilik oplock berniat untuk menutup pegangan aliran di mana oplock diberikan. Operasi diblokir, menunggu pengakuan atas pemutusan oplock, terus menunggu sampai pengendali pemilik oplock ditutup.
FSCTL_REQUEST_OPLOCK
- Dengan menentukan REQUEST_OPLOCK_INPUT_FLAG_ACK dalam anggota Flags struktur REQUEST_OPLOCK_INPUT_BUFFER yang diteruskan sebagai parameter lpInBuffer dari DeviceIoControl, FSCTL ini digunakan untuk mengakui terjadinya pemutusan oplock pada Windows 7. Pengakuan diperlukan hanya jika flag REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED diatur dalam anggota Flags struktur REQUEST_OPLOCK_OUTPUT_BUFFER yang diteruskan sebagai parameter lpOutBuffer dari DeviceIoControl. Dengan cara yang sama, FltFsControlFile dan ZwFsControlFile dapat digunakan untuk mengakui oplock Windows 7 dari mode kernel. Untuk informasi selengkapnya, lihat FSCTL_REQUEST_OPLOCK.
Kode FSCTL yang terkait adalah FSCTL_OPLOCK_BREAK_NOTIFY. Kode ini digunakan ketika pemanggil ingin diberi tahu ketika pemutusan oplock pada aliran yang diberikan telah selesai. Panggilan ini dapat diblokir. Saat panggilan FSCTL_OPLOCK_BREAK_NOTIFY mengembalikan STATUS_SUCCESS, ini menandakan salah satu hal berikut:
Tidak ada oplock yang diberikan.
Tidak ada proses pemutusan oplock yang terjadi saat panggilan.
Pemutusan oplock yang sebelumnya sedang berlangsung kini telah selesai.
Untuk mengirim pengakuan ketika tidak ada pengakuan yang diharapkan adalah kesalahan dan pengakuan IRP FSCTL gagal dengan STATUS_INVALID_OPLOCK_PROTOCOL.
Menutup gagang file di mana jeda oplock diminta akan secara implisit mengakui pemutusan tersebut. Dalam kasus pemutusan oplock karena pelanggaran berbagi, pemegang oplock dapat menutup handle file, yang mengakui pemutusan oplock tersebut, dan mencegah pelanggaran berbagi untuk pengguna lain dari file tersebut.