Fungsi FltCommitFinalizeComplete (fltkernel.h)

Rutinitas FltCommitFinalizeComplete mengakui pemberitahuan TRANSACTION_NOTIFY_COMMIT_FINALIZE.

Sintaks

NTSTATUS FLTAPI FltCommitFinalizeComplete(
  [in]           PFLT_INSTANCE Instance,
  [in]           PKTRANSACTION Transaction,
  [in, optional] PFLT_CONTEXT  TransactionContext
);

Parameter

[in] Instance

Penunjuk buram ke instans driver minifilter. Parameter ini diperlukan dan tidak boleh NULL.

[in] Transaction

Pointer buram untuk transaksi driver minifilter saat ini terdaftar di. Parameter ini diperlukan dan tidak boleh NULL.

[in, optional] TransactionContext

Arahkan ke konteks driver minifilter untuk transaksi. Parameter ini bersifat opsional dan dapat berupa NULL.

Nilai kembali

FltCommitFinalizeComplete mengembalikan STATUS_SUCCESS atau nilai NTSTATUS yang sesuai, seperti berikut ini:

Menampilkan kode Deskripsi
STATUS_NOT_FOUND
Driver minifilter tidak menetapkan konteks pada transaksi. Ini adalah kode kesalahan.

Keterangan

Driver minifilter yang terdaftar dalam transaksi dapat menerima pemberitahuan TRANSACTION_NOTIFY_COMMIT_FINALIZE ketika transaksi diterapkan sepenuhnya (yaitu, ketika semua manajer sumber daya yang terkait dengan transaksi, seperti TxF, telah berkomitmen). Untuk driver minifilter antivirus yang melakukan pemindaian di luar transaksi, Anda dapat menggunakan nilai pemberitahuan ini untuk menentukan kapan driver harus mulai memindai file.

Untuk mengirim pemberitahuan TRANSACTION_NOTIFY_COMMIT_FINALIZE ke driver minifilter, manajer filter memanggil rutinitas TransactionNotificationCallback driver minifilter. Driver minifilter mengakui pemberitahuan ini dengan salah satu dari dua cara:

  • Rutinitas TransactionNotificationCallback driver minifilter melakukan pemrosesan dan pengembalian yang diperlukan STATUS_SUCCESS. (Dalam hal ini, driver minifilter tidak memanggil FltCommitFinalizeComplete.)
  • Rutinitas TransactionNotificationCallback driver minifilter memposting pemrosesan yang diperlukan ke utas pekerja dan mengembalikan STATUS_PENDING. Setelah melakukan pemrosesan secara asinkron, rutinitas utas pekerja driver minifilter harus memanggil FltCommitFinalizeComplete untuk menunjukkan bahwa ia telah menyelesaikan pemrosesan ini. Jika rutinitas utas pekerja driver minifilter tidak memanggil FltCommitFinalizeComplete, sumber daya sistem tertentu akan bocor.
Untuk mendaftarkan rutinitas TransactionNotificationCallback , driver minifilter menyimpan alamat rutinitas jenis PFLT_TRANSACTION_NOTIFICATION_CALLBACK di anggota TransactionNotificationCallback dari struktur FLT_REGISTRATION yang diteruskan driver minifilter sebagai parameter PendaftaranFltRegisterFilter.

Untuk mendaftar dalam transaksi, panggil FltEnlistInTransaction.

Untuk mengalokasikan konteks transaksi baru, panggil FltAllocateContext.

Untuk mengambil konteks transaksi, panggil FltGetTransactionContext.

Untuk menghapus konteks transaksi, panggil FltDeleteTransactionContext atau FltDeleteContext.

Untuk mengatur konteks transaksi, panggil FltSetTransactionContext.

Untuk informasi selengkapnya, lihat Pemberitahuan Transaksi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows Vista Service Pack 1 (SP1) dan yang lebih baru.
Target Platform Universal
Header fltkernel.h (termasuk Fltkernel.h)
Pustaka Fltmgr.lib
IRQL <= APC_LEVEL

Lihat juga

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPreprepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK