Fungsi FltOplockBreakToNone (fltkernel.h)
Rutinitas FltOplockBreakToNone merusak semua kunci oportunistik (oplock) segera tanpa memperhatikan kunci oplock apa pun.
Sintaks
FLT_PREOP_CALLBACK_STATUS FLTAPI FltOplockBreakToNone(
[in] POPLOCK Oplock,
[in] PFLT_CALLBACK_DATA CallbackData,
[in, optional] PVOID Context,
[in, optional] PFLTOPLOCK_WAIT_COMPLETE_ROUTINE WaitCompletionRoutine,
[in, optional] PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE PrePostCallbackDataRoutine
);
Parameter
[in] Oplock
Penunjuk oplock buram untuk file. Pointer ini harus diinisialisasi oleh panggilan sebelumnya ke FltInitializeOplock.
[in] CallbackData
Penunjuk ke struktur data panggilan balik (FLT_CALLBACK_DATA) untuk operasi I/O.
[in, optional] Context
Penunjuk ke informasi konteks yang ditentukan pemanggil untuk diteruskan ke rutinitas panggilan balik yang ditunjukkan oleh parameter WaitCompletionRoutine dan PrePostCallbackDataRoutine .
[in, optional] WaitCompletionRoutine
Pointer ke rutinitas panggilan balik yang disediakan penelepon. Jika pembobolan oplock sedang berlangsung, rutinitas ini dipanggil ketika jeda selesai. Parameter ini bersifat opsional dan dapat berupa NULL. Jika NULL, penelepon dimasukkan ke dalam status tunggu sampai pemisah oplock selesai.
Rutinitas ini dinyatakan sebagai berikut:
typedef VOID
(*PFLTOPLOCK_WAIT_COMPLETE_ROUTINE) (
__in PFLT_CALLBACK_DATA CallbackData,
__in_opt PVOID Context
);
Rutinitas ini memiliki parameter berikut:
CallbackData
Penunjuk ke struktur data panggilan balik untuk operasi I/O.
Konteks
Penunjuk informasi konteks yang diteruskan dalam parameter Konteks ke FltOplockBreakToNone.
[in, optional] PrePostCallbackDataRoutine
Penunjuk ke rutinitas panggilan balik yang disediakan penelepon untuk dipanggil jika operasi I/O akan ditunda. Rutinitas dipanggil sebelum paket oplock menunggu IRP. Parameter ini bersifat opsional dan dapat berupa NULL.
Rutinitas ini dinyatakan sebagai berikut:
typedef VOID
(*PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE) (
__in PFLT_CALLBACK_DATA CallbackData,
__in_opt PVOID Context
);
Rutinitas ini memiliki parameter berikut:
CallbackData
Penunjuk ke struktur data panggilan balik untuk operasi I/O.
Konteks
Penunjuk informasi konteks yang diteruskan dalam parameter Konteks ke FltOplockBreakToNone.
Nilai kembali
FltOplockBreakToNone mengembalikan salah satu kode FLT_PREOP_CALLBACK_STATUS berikut:
Menampilkan kode | Deskripsi |
---|---|
|
FltOplockBreakToNone mengalami kegagalan alokasi kumpulan, atau panggilan ke fungsi FsRtlOplockBreakToNoneEx mengembalikan kesalahan. FltOplockBreakToNone akan mengatur kode kesalahan dalam anggota Status dari struktur IO_STATUS_BLOCK anggota IoStatus . Struktur IO_STATUS_BLOCK ditentukan dalam anggota IoStatus dari struktur data panggilan balik FLT_CALLBACK_DATA . Parameter CallbackData menunjuk ke FLT_CALLBACK_DATA ini. |
|
Hentian oplock dimulai, yang menyebabkan Manajer Filter memposting operasi I/O ke antrean kerja. Operasi I/O diwakili oleh data panggilan balik yang ditunjukkan parameter CallbackData . |
|
Data panggilan balik yang ditunjuk parameter CallbackData tidak tertunda, dan operasi I/O segera dilakukan. |
Keterangan
Untuk informasi selengkapnya tentang kunci oportunistik, lihat dokumentasi Microsoft Windows SDK.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Rutinitas FltOplockBreakToNone tersedia dimulai dengan Windows 7. |
Target Platform | Universal |
Header | fltkernel.h (termasuk Fltkernel.h) |
Pustaka | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |