Bagikan melalui


Fungsi FsRtlOplockBreakToNoneEx (ntifs.h)

Rutinitas FsRtlOplockBreakToNoneEx merusak semua kunci oportunistik (oplock) segera tanpa memperhatikan kunci oplock apa pun.

Sintaks

NTSTATUS FsRtlOplockBreakToNoneEx(
  [in, out]      POPLOCK                       Oplock,
  [in]           PIRP                          Irp,
  [in]           ULONG                         Flags,
  [in, optional] PVOID                         Context,
  [in, optional] POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
  [in, optional] POPLOCK_FS_PREPOST_IRP        PostIrpRoutine
);

Parameter

[in, out] Oplock

Penunjuk oplock buram untuk file. Pointer ini harus diinisialisasi oleh panggilan sebelumnya ke FsRtlInitializeOplock.

[in] Irp

Penunjuk ke IRP untuk operasi I/O.

[in] Flags

Bitmask untuk operasi I/O file terkait. Sistem file atau driver filter mengatur bit untuk menentukan perilaku FsRtlOplockBreakToNoneEx. Parameter Bendera memiliki opsi berikut:

OPLOCK_FLAG_COMPLETE_IF_OPLOCKED (0x00000001)

Menentukan untuk mengizinkan jeda oplock untuk melanjutkan tanpa memblokir atau menunggu operasi yang menyebabkan jeda oplock. Biasanya, bendera ini hanya digunakan jika IRP yang ditujukan parameter Irp untuk mendeklarasikan operasi IRP_MJ_CREATE.

[in, optional] Context

Penunjuk ke informasi konteks yang ditentukan pemanggil untuk diteruskan ke rutinitas panggilan balik yang ditunjukkan oleh parameter CompletionRoutine dan PostIrpRoutine .

[in, optional] CompletionRoutine

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
(*POPLOCK_WAIT_COMPLETE_ROUTINE) (
      IN PVOID Context,
      IN PIRP Irp
      );

Rutinitas ini memiliki parameter berikut:

Konteks

Penunjuk informasi konteks yang diteruskan dalam parameter Konteks ke FsRtlOplockBreakToNoneEx.

Irp

Penunjuk ke IRP untuk operasi I/O.

[in, optional] PostIrpRoutine

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
(*POPLOCK_FS_PREPOST_IRP) (
      IN PVOID Context,
      IN PIRP Irp
      );

Konteks

Penunjuk informasi konteks yang diteruskan dalam parameter Konteks ke FsRtlOplockBreakToNoneEx.

Irp

Penunjuk ke IRP untuk operasi I/O.

Nilai kembali

FsRtlOplockBreakToNoneEx mengembalikan STATUS_SUCCESS atau kode NTSTATUS yang sesuai seperti salah satu dari berikut ini:

Menampilkan kode Deskripsi
STATUS_CANCELLED
IRP dibatalkan. STATUS_CANCELLED adalah kode kesalahan.
STATUS_PENDING
Pembobolan oplock sedang berlangsung. Oleh karena itu, IRP tertunda. STATUS_PENDING adalah kode sukses.
STATUS_OPLOCK_BREAK_IN_PROGRESS
Pemutus kunci oportunistik (oplock) sedang berlangsung. STATUS_OPLOCK_BREAK_IN_PROGRESS adalah kode sukses yang dikembalikan FsRtlOplockBreakToNoneEx jika pemanggil mengatur OPLOCK_FLAG_COMPLETE_IF_OPLOCKED dalam parameter Bendera dan oplock harus rusak.

Keterangan

Untuk informasi selengkapnya tentang kunci oportunistik, lihat dokumentasi Microsoft Windows SDK.

Minifilter harus memanggil FltOplockBreakToNoneEx alih-alih FsRtlOplockBreakToNoneEx.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Rutinitas FsRtlOplockBreakToNoneEx tersedia dimulai dengan Windows 7.
Target Platform Universal
Header ntifs.h (termasuk Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Lihat juga

FltOplockBreakToNoneEx

FsRtlInitializeOplock