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 |
---|---|
|
Pemanggil sudah terdaftar dalam transaksi. Ini adalah kode kesalahan. |
|
Instans yang ditentukan dalam parameter Instans sedang ditumbangkan. Ini adalah kode kesalahan. |
|
FltEnlistInTransaction mengalami kesalahan alokasi kumpulan. Ini adalah kode kesalahan. |
|
Pemanggil tidak mendaftarkan rutinitas TransactionNotificationCallback . Ini adalah kode kesalahan. |
|
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk