Fungsi FltEnlistInTransaction (fltkernel.h)

Rutinitas FltEnlistInTransaction mendaftarkan driver minifilter dalam transaksi tertentu.

Sintaks

NTSTATUS FLTAPI FltEnlistInTransaction(
  [in] PFLT_INSTANCE     Instance,
  [in] PKTRANSACTION     Transaction,
  [in] PFLT_CONTEXT      TransactionContext,
  [in] NOTIFICATION_MASK NotificationMask
);

Parameter

[in] Instance

Penunjuk instans buram untuk pemanggil. Parameter ini diperlukan dan tidak boleh NULL.

[in] Transaction

Pointer transaksi buram untuk transaksi.

[in] TransactionContext

Penunjuk ke konteks transaksi driver minifilter. Parameter ini diperlukan dan tidak boleh NULL.

[in] NotificationMask

Menentukan jenis pemberitahuan yang akan dikirim manajer filter ke driver minifilter, sebagai satu atau beberapa nilai yang tercantum dalam tabel berikut. Parameter ini diperlukan dan tidak boleh nol.

Nilai Makna
TRANSACTION_NOTIFY_COMMIT Pemberitahuan ini dikirim ketika transaksi sedang dilakukan.
TRANSACTION_NOTIFY_COMMIT_FINALIZE Untuk Windows Vista SP1 dan yang lebih baru, pemberitahuan ini dikirim ketika transaksi diterapkan sepenuhnya (yaitu, ketika semua manajer sumber daya yang terkait dengan transaksi, seperti TxF, telah berkomitmen).
TRANSACTION_NOTIFY_PREPARE Pemberitahuan ini dikirim ketika transaksi telah memasuki fase persiapan penerapan.
TRANSACTION_NOTIFY_PREPREPARE Pemberitahuan ini dikirim ketika transaksi telah memasuki fase pra-persiapan penerapan.
TRANSACTION_NOTIFY_ROLLBACK Pemberitahuan ini dikirim ketika transaksi sedang digulung balik atau dibatalkan.
FLT_MAX_TRANSACTION_NOTIFICATIONS TRANSACTION_NOTIFY_COMMIT | TRANSACTION_NOTIFY_PREPARE | TRANSACTION_NOTIFY_PREPREPARE | TRANSACTION_NOTIFY_ROLLBACK

Nilai kembali

FltEnlistInTransaction mengembalikan STATUS_SUCCESS atau nilai NTSTATUS yang sesuai seperti salah satu dari berikut ini:

Menampilkan kode Deskripsi
STATUS_FLT_ALREADY_ENLISTED
Pemanggil sudah terdaftar dalam transaksi. Ini adalah kode kesalahan.
STATUS_FLT_DELETING_OBJECT
Instans yang ditentukan dalam parameter Instans sedang ditumbangkan. Ini adalah kode kesalahan.
STATUS_INSUFFICIENT_RESOURCES
FltEnlistInTransaction mengalami kesalahan alokasi kumpulan. Ini adalah kode kesalahan.
STATUS_INVALID_PARAMETER
Pemanggil tidak mendaftarkan rutinitas TransactionNotificationCallback . Ini adalah kode kesalahan.
STATUS_INVALID_PARAMETER_4
Pemanggil menentukan nilai yang tidak valid untuk parameter NotificationMask . Ini adalah kode kesalahan.

Keterangan

Driver minifilter memanggil FltEnlistInTransaction untuk mendaftar dalam transaksi. Sebelum memanggil FltEnlistInTransaction, driver minifilter harus telah mendaftarkan rutinitas TransactionNotificationCallback . Jika tidak, panggilan ke FltEnlistInTransaction akan gagal.

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 mengembalikan atau membatalkan transaksi, panggil FltRollbackEnlistment.

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 ini tersedia pada Windows Vista dan versi Windows yang lebih baru.
Target Platform Universal
Header fltkernel.h (termasuk Fltkernel.h)
Pustaka FltMgr.lib
DLL FltMgr.sys
IRQL <= APC_LEVEL

Lihat juga

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltGetTransactionContext

FltPreprepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK