Bagikan melalui


Fungsi FltOplockFsctrl (fltkernel.h)

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

Sintaks

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

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 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.

Mengembalikan nilai

FltOplockFsctrl 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, FltOplockFsctrl mengembalikan FLT_PREOP_COMPLETE.

Keterangan

Driver minifilter memanggil FltOplockFsctrl untuk melakukan berbagai operasi penguncian oportunistik untuk operasi I/O kontrol sistem buat atau 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, FltOplockFsctrl 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
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_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FltCheckOplock

FltCurrentBatchOplock

FltInitializeOplock

FltOplockIsFastIoPossible

FltUninitializeOplock

FsRtlOplockFsctrl

IRP_MJ_CREATE

IRP_MJ_FILE_SYSTEM_CONTROL