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 |
---|---|
|
IRP dibatalkan. STATUS_CANCELLED adalah kode kesalahan. |
|
Pembobolan oplock sedang berlangsung. Oleh karena itu, IRP tertunda. STATUS_PENDING adalah kode sukses. |
|
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk