Makro FsRtlCheckOplock (rxprocs.h)
Rutinitas FsRtlCheckOplock menyinkronkan IRP untuk operasi I/O file dengan status kunci oportunistik (oplock) file saat ini.
Sintaks
void FsRtlCheckOplock(
A1,
A2,
A3,
A4,
A5
);
Parameter
A1
Penunjuk kunci oportunistik buram untuk file. Pointer ini harus diinisialisasi oleh panggilan sebelumnya ke FsRtlInitializeOplock.
A2
Penunjuk ke IRP untuk operasi I/O.
A3
Penunjuk ke informasi konteks yang ditentukan penelepon untuk diteruskan ke rutinitas panggilan balik yang ditunjukkan oleh parameter CompletionRoutine dan PostIrpRoutine .
A4
Penunjuk ke rutinitas panggilan balik yang disediakan penelepon. Jika pemutusan kunci oportunistik sedang berlangsung, rutinitas ini dipanggil ketika istirahat selesai. Parameter ini bersifat opsional dan dapat berupa NULL. Jika NULL, penelepon dimasukkan ke dalam status tunggu sampai pemutusan kunci oportunistik selesai.
Rutinitas ini dinyatakan sebagai berikut:
typedef VOID (*POPLOCK_WAIT_COMPLETE_ROUTINE) ( IN PVOID Context, IN PIRP Irp ); |
Rutinitas ini memiliki parameter berikut:
- Konteks
- Irp
Penunjuk informasi konteks yang diteruskan dalam parameter Konteks ke FsRtlCheckOplock.
Penunjuk ke IRP untuk operasi I/O.
A5
Penunjuk ke rutinitas panggilan balik yang disediakan penelepon untuk dipanggil jika operasi I/O diposting ke antrean kerja. 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
- Irp
Penunjuk informasi konteks yang diteruskan dalam parameter Konteks ke FsRtlCheckOplock.
Penunjuk ke IRP untuk operasi I/O.
Nilai kembali
Tidak ada
Keterangan
FsRtlCheckOplock menyinkronkan IRP untuk operasi I/O dengan status kunci oportunistik file saat ini sesuai dengan kondisi berikut:
- Jika operasi I/O akan menyebabkan kunci oportunistik rusak, pemutusan kunci oportunistik dimulai.
- Jika operasi I/O tidak dapat dilanjutkan sampai pemutusan kunci oportunistik selesai, FsRtlCheckOplock mengembalikan STATUS_PENDING dan memanggil rutinitas panggilan balik yang ditunjuk parameter PostIrpRoutine .
IRP_MJ_CLEANUP
IRP_MJ_CREATE
IRP_MJ_FILE_SYSTEM_CONTROL
IRP_MJ_FLUSH_BUFFERS
IRP_MJ_LOCK_CONTROL
IRP_MJ_READ
IRP_MJ_SET_INFORMATION
IRP_MJ_WRITE
Untuk informasi mendetail tentang kunci oportunistik, lihat dokumentasi Microsoft Windows SDK.
Minifilter harus memanggil FltCheckOplock alih-alih FsRtlCheckOplock.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Rutinitas ini tersedia di Microsoft Windows 2000 dan versi yang lebih baru dari sistem operasi Windows. |
Target Platform | Universal |
Header | rxprocs.h (termasuk FltKernel.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Lihat juga
FSCTL_OPBATCH_ACK_CLOSE_PENDING
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