Fungsi FltPrepareComplete (fltkernel.h)

Rutinitas FltPrepareComplete mengakui pemberitahuan TRANSACTION_NOTIFY_PREPARE.

Sintaks

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

Parameter

[in] Instance

Penunjuk instans buram untuk pemanggil.

[in] Transaction

Pointer transaksi buram untuk transaksi.

[in, optional] TransactionContext

Arahkan ke konteks transaksi driver minifilter.

Nilai kembali

FltPrepareComplete mengembalikan nilai STATUS_SUCCESS atau 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_PREPARE ketika transaksi memasuki fase persiapan penerapan. Untuk mengirim pemberitahuan 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 yang diperlukan dan mengembalikan STATUS_SUCCESS. Dalam hal ini, driver minifilter tidak memanggil FltPrepareComplete.
  • Rutinitas TransactionNotificationCallback driver minifilter memposting pemrosesan yang diperlukan ke utas pekerja dan mengembalikan STATUS_PENDING. Setelah melakukan pemrosesan secara asinkron, rutinitas kerja driver minifilter harus memanggil FltPrepareComplete untuk menunjukkan bahwa ia telah menyelesaikan pemrosesan ini. Jika rutinitas kerja driver minifilter tidak memanggil FltPrepareComplete, operasi persiapan transaksi tidak dapat diselesaikan oleh manajer transaksi kernel.
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.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Rutinitas FltPrepareComplete tersedia di Windows Vista dan yang lebih baru.
Target Platform Universal
Header fltkernel.h (termasuk Fltkernel.h)
Pustaka FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Lihat juga

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPreprepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK