Bagikan melalui


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
FLT_PREOP_COMPLETE
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.
FLT_PREOP_PENDING
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 .
FLT_PREOP_SUCCESS_WITH_CALLBACK
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

Lihat juga

FLT_CALLBACK_DATA

FltInitializeOplock

FsRtlOplockBreakToNoneEx

IO_STATUS_BLOCK