Bagikan melalui


Fungsi FltOplockFsctrlEx (fltkernel.h)

Rutinitas FltOplockFsctrlEx melakukan berbagai operasi kunci oportunistik (oplock) atas nama driver minifilter.

Sintaks

FLT_PREOP_CALLBACK_STATUS FLTAPI FltOplockFsctrlEx(
  [in] POPLOCK            Oplock,
  [in] PFLT_CALLBACK_DATA CallbackData,
  [in] ULONG              OpenCount,
  [in] ULONG              Flags
);

Parameter

[in] Oplock

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

[in] CallbackData

Arahkan ke struktur FLT_CALLBACK_DATA untuk operasi I/O. Parameter ini diperlukan dan tidak boleh NULL.

[in] OpenCount

Jumlah handel pengguna untuk file, jika oplock eksklusif sedang diminta. Mengatur nilai bukan nol untuk permintaan oplock tingkat 2, R, atau RH menunjukkan bahwa ada kunci rentang byte pada file. Untuk informasi tentang jenis oplock, lihat Gambaran Umum Oplock.

[in] Flags

Bitmask untuk operasi oplock terkait. Driver minifilter mengatur bit untuk menentukan perilaku FltOplockFsctrlEx. Parameter Bendera memiliki opsi berikut:

Nilai Makna
OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH (0x00000001) Sistem file memverifikasi bahwa semua kunci oplock pada handel apa pun yang saat ini terbuka cocok. Dengan menentukan bendera ini, Anda mengizinkan paket oplock untuk memberikan oplock level RW atau RWH ketika ada lebih dari satu handel terbuka ke file. Untuk informasi selengkapnya tentang jenis oplock, lihat Gambaran Umum Oplock.

Nilai kembali

FltOplockFsctrlEx mengembalikan FLT_PREOP_PENDING untuk beberapa operasi FSCTL. Untuk informasi selengkapnya, lihat halaman referensi untuk kode FSCTL yang tercantum di bagian Keterangan berikut. Jika tidak, FltOplockFsctrlEx mengembalikan FLT_PREOP_COMPLETE.

Keterangan

Driver minifilter memanggil FltOplockFsctrlEx untuk melakukan berbagai operasi penguncian oportunistik untuk operasi pembuatan atau operasi I/O kontrol sistem file.

Struktur FLT_CALLBACK_DATA yang ditunjukkan oleh parameter CallbackData harus mewakili operasi IRP_MJ_FILE_SYSTEM_CONTROL atau IRP_MJ_CREATE berbasis IRP.

Jika operasi adalah operasi IRP_MJ_FILE_SYSTEM_CONTROL, FltOplockFsctrlEx dapat digunakan dengan kode FSCTL berikut:

Kode FSCTL diatur dalam anggota FsControlCode dari struktur FLT_PARAMETERS untuk operasi. Untuk informasi selengkapnya tentang FsControlCode dan parameter IRP_MJ_FILE_SYSTEM_CONTROL lainnya, lihat FLT_PARAMETERS untuk IRP_MJ_FILE_SYSTEM_CONTROL.

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

Jika operasi adalah permintaan IRP_MJ_CREATE , FltOplockFsctrl dapat digunakan untuk meminta kunci oportunistik filter yang tertunda jika semua kondisi berikut ini benar:

  • Nilai parameter OpenCount harus 1.
  • Nilai parameter DesiredAccess untuk permintaan IRP_MJ_CREATE FILE_READ_ATTRIBUTES. Parameter ini diatur dalam anggota SecurityContext dari struktur FLT_PARAMETERS untuk operasi. Untuk informasi selengkapnya, lihat FLT_PARAMETERS untuk IRP_MJ_CREATE.
  • Nilai parameter ShareAccess untuk operasi IRP_MJ_CREATE adalah FILE_SHARE_READ, FILE_SHARE_WRITE, atau FILE_SHARE_DELETE. Parameter ini diatur dalam anggota ShareAccess dari struktur FLT_PARAMETERS untuk operasi. Untuk informasi selengkapnya, lihat FLT_PARAMETERS untuk IRP_MJ_CREATE.

Filter dan sistem file yang memanggil fungsi ini harus menyinkronkan panggilan ke dalam paket oplock yang disediakan sistem. Lihat Sinkronisasi Oplock untuk informasi selengkapnya.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Rutinitas ini tersedia dimulai dengan Windows 8.
Target Platform Universal
Header fltkernel.h (termasuk Fltkernel.h)
Pustaka FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Lihat juga

FLT_CALLBACK_DATA

FLT_PARAMETERS untuk IRP_MJ_CREATE

FLT_PARAMETERS untuk IRP_MJ_FILE_SYSTEM_CONTROL

FSCTL_OPBATCH_ACK_CLOSE_PENDING

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_NOTIFY

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FltCheckOplockEx

FltInitializeOplock

FsRtlOplockFsctrlEx

IRP_MJ_CREATE

IRP_MJ_FILE_SYSTEM_CONTROL