PTM_RM_NOTIFICATION fungsi panggilan balik (wdm.h)
Rutinitas panggilan balik ResourceManagerNotification resource manager menerima dan menangani pemberitahuan transaksi.
Sintaks
PTM_RM_NOTIFICATION PtmRmNotification;
NTSTATUS PtmRmNotification(
[in] PKENLISTMENT EnlistmentObject,
[in] PVOID RMContext,
[in] PVOID TransactionContext,
[in] ULONG TransactionNotification,
[in, out] PLARGE_INTEGER TmVirtualClock,
[in] ULONG ArgumentLength,
[in] PVOID Argument
)
{...}
Parameter
[in] EnlistmentObject
Penunjuk ke objek pendaftaran. Rutinitas panggilan balik ResourceManagerNotification menerima pemberitahuan untuk pendaftaran yang diwakili objek ini.
[in] RMContext
Nilai yang sebelumnya ditentukan manajer sumber daya untuk parameter RMKey dari rutinitas TmEnableCallbacks .
[in] TransactionContext
Nilai yang sebelumnya ditentukan manajer sumber daya untuk parameter EnlistmentKey dari rutinitas ZwCreateEnlistment .
[in] TransactionNotification
Salah satu nilai TRANSACTION_NOTIFY_XXX yang ditentukan dalam Ktmtypes.h. Nilai ini menentukan jenis pemberitahuan transaksi yang dikirim KTM ke pemanggil.
[in, out] TmVirtualClock
Penunjuk ke lokasi yang berisi nilai jam virtual pada saat KTM menyiapkan pemberitahuan untuk pengiriman ke manajer sumber daya. Jika rutinitas panggilan balik meningkatkan nilai ini sebelum kembali, KTM memperbarui jam virtual ke nilai baru. (Biasanya, manajer sumber daya tidak memodifikasi nilai jam virtual.)
[in] ArgumentLength
Panjang, dalam byte, dari buffer yang dirujuk oleh parameter Argumen . Parameter ini nol jika buffer tidak tersedia.
[in] Argument
Penunjuk ke buffer yang berisi argumen khusus pemberitahuan. Parameter ini adalah NULL jika pemberitahuan yang ditentukan parameter TransactionNotification tidak memerlukan buffer argumen.
Untuk daftar pemberitahuan yang menyertakan buffer argumen tambahan, lihat bagian Keterangan TRANSACTION_NOTIFICATION.
Nilai kembali
Rutinitas panggilan balik ResourceManagerNotification harus mengembalikan STATUS_SUCCESS atau nilai status lain yang NT_SUCCESS(status) sama dengan TRUE jika operasi berhasil.
Biasanya, manajer sumber daya mengembalikan STATUS_SUCCESS jika layanan pemberitahuan secara sinkron dan STATUS_PENDING jika layanan pemberitahuan secara asinkron, tetapi dapat mengembalikan STATUS_PENDING dalam kedua kasus. Namun, manajer sumber daya dapat mengembalikan STATUS_PENDING hanya untuk pemberitahuan yang ditanggapinya dengan memanggil salah satu rutinitas TmXxxComplete atau ZwXxxComplete .
Dengan kata lain, jika manajer sumber daya harus menanggapi pemberitahuan dengan memanggil salah satu rutinitas TmXxxComplete atau ZwXxxComplete , manajer sumber daya dapat mengembalikan STATUS_PENDING untuk pemberitahuan dan kemudian memanggil rutinitas TmXxxComplete atau ZwXxxComplete yang sesuai.
Jika terjadi kesalahan, rutinitas panggilan balik harus mengembalikan nilai status yang NT_SUCCESS(status) sama dengan FALSE.
Keterangan
Untuk mendaftarkan rutinitas panggilan balik ResourceManagerNotification , manajer sumber daya Anda harus memanggil TmEnableCallbacks.
Perhatikan bahwa rutinitas panggilan balik ResourceManagerNotification menerima penunjuk, bukan handel, ke objek pendaftaran. Anda dapat meneruskan penunjuk objek pendaftaran ke rutinitas TmXxx objek pendaftaran.
Untuk informasi selengkapnya tentang rutinitas panggilan balik ResourceManagerNotification, lihat Membuat Resource Manager.
Rutinitas panggilan balik ResourceManagerNotification dipanggil di IRQL = PASSIVE_LEVEL, dan harus kembali di IRQL = PASSIVE_LEVEL.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia di Windows Vista dan versi sistem operasi yang lebih baru. |
Target Platform | Desktop |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | PASSIVE_LEVEL (Lihat bagian Keterangan) |
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