Bagikan melalui


Sinkronisasi Oplock

Filter dan sistem file yang meminta kunci oportunistik eksklusif (oplock) harus menyinkronkan panggilan ke dalam paket oplock yang disediakan sistem. Secara khusus, panggilan ke rutinitas oplock FSCTRL (untuk membangun oplock), harus disinkronkan terhadap panggilan ke rutinitas check-break oplock. Daftar kedua set rutinitas meliputi:

Saat memproses permintaan oplock, filter dan sistem file harus memastikan hal berikut:

  • I/O yang mungkin merusak oplock tidak dapat terjadi secara paralel dengan memproses permintaan.
  • Permintaan Oplock tidak dapat terjadi bersamaan dengan pengakuan oplock break.

Panggilan IRP yang meminta pembuatan oplock eksklusif untuk blok kontrol file (FCB) yang sama adalah:

Berikut ini adalah beberapa contoh sinkronisasi oplock:

  • Saat memproses permintaan oplock, sistem file akan memperoleh beberapa sumber daya secara eksklusif, memanggil FsRtlOplockFsctrlEx, dan merilis sumber daya.

  • Saat memproses pengakuan putus oplock, sistem file akan memperoleh sumber daya yang sama yang dibagikan, memanggil FsRtlOplockFsctrlEx, dan merilis sumber daya.

  • Saat melakukan I/O, sistem file akan memperoleh sumber daya yang sama yang dibagikan, memanggil FsRtlCheckOplockEx2, melakukan I/O, dan merilis sumber daya.

    Sistem file atas harus memastikan bahwa mereka menyinkronkan antara panggilan FsRtlCheckUpperOplock dan FsRtlUpperOplockFsctrl dengan cara yang sama.