Fungsi ZwNotifyChangeKey (ntifs.h)
Rutinitas ZwNotifyChangeKey memungkinkan driver untuk meminta pemberitahuan ketika kunci registri berubah.
Sintaks
NTSYSAPI NTSTATUS ZwNotifyChangeKey(
[in] HANDLE KeyHandle,
[in, optional] HANDLE Event,
[in, optional] PIO_APC_ROUTINE ApcRoutine,
[in, optional] PVOID ApcContext,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] ULONG CompletionFilter,
[in] BOOLEAN WatchTree,
[out, optional] PVOID Buffer,
[in] ULONG BufferSize,
[in] BOOLEAN Asynchronous
);
Parameter
[in] KeyHandle
Tangani ke kunci untuk mendaftarkan rutinitas pemberitahuan. Handel ini dibuat oleh panggilan yang berhasil ke ZwCreateKey atau ZwOpenKey. Pemanggil harus memiliki akses KEY_NOTIFY yang ditentukan.
[in, optional] Event
Handel opsional ke peristiwa yang dibuat penelepon untuk diatur ke status Sinyal saat operasi selesai. Jika bukan NULL, penelepon ditempatkan ke dalam status tunggu hingga operasi berhasil, pada saat itu peristiwa diatur ke status Sinyal.
[in, optional] ApcRoutine
Penunjuk ke rutinitas APC yang disediakan penelepon untuk dijalankan setelah operasi selesai. Parameter ini bersifat opsional dan dapat berupa NULL.
[in, optional] ApcContext
Pointer untuk diteruskan sebagai argumen ke rutinitas APC yang ditunjuk apcRoutine . Argumen ini diperlukan jika ApcRoutine bukan NULL, dan harus dilemparkan untuk mengetik PVOID. Jika tidak, jika ApcRoutine adalah NULL, atur parameter ini ke NULL juga.
Arti parameter ini tergantung pada apakah rutinitas dipanggil dari mode kernel atau dari mode pengguna:
Untuk panggilan mode kernel, atur parameter ini ke salah satu nilai enumerasi WORK_QUEUE_TYPE berikut:
- CriticalWorkQueue
- DelayedWorkQueue
Untuk panggilan mode pengguna, parameter ini menunjuk ke konteks yang ditentukan pemanggil untuk rutinitas APC.
[out] IoStatusBlock
Arahkan ke struktur IO_STATUS_BLOCK yang berisi status akhir dan informasi tentang operasi. Untuk panggilan berhasil yang mengembalikan data, jumlah byte yang ditulis ke Buffer disediakan dalam IoStatusBlock-Information>.
[in] CompletionFilter
Bitmask operasi yang menyebabkan driver diberi tahu. Tentukan satu atau beberapa bendera berikut:
Nilai | Makna |
---|---|
REG_NOTIFY_CHANGE_NAME | Beri tahu pemanggil jika subkunci ditambahkan atau dihapus. |
REG_NOTIFY_CHANGE_ATTRIBUTES | Beri tahu pemanggil perubahan pada atribut kunci, seperti informasi deskriptor keamanan. |
REG_NOTIFY_CHANGE_LAST_SET | Beri tahu pemanggil perubahan pada nilai kunci. Ini dapat mencakup penambahan atau penghapusan nilai, atau mengubah nilai yang sudah ada. (Pemanggil tidak menerima pemberitahuan jika nilai baru yang ditulis ke kunci cocok dengan nilai kunci sebelumnya.) |
REG_NOTIFY_CHANGE_SECURITY | Beri tahu pemanggil perubahan pada pendeskripsi keamanan kunci. |
[in] WatchTree
Jika TRUE, driver akan diberi tahu tentang perubahan pada semua subkuncar kunci yang ditentukan. Jika FALSE, driver hanya diberi tahu untuk perubahan pada kunci yang ditentukan.
[out, optional] Buffer
Dicadangkan. Tentukan NULL.
[in] BufferSize
Dicadangkan. Tentukan nol.
[in] Asynchronous
Jika FALSE, rutinitas tidak kembali sampai peristiwa yang ditentukan terjadi. Jika TRUE, rutinitas akan segera ditampilkan.
Nilai kembali
Rutinitas ZwNotifyChangeKey mengembalikan STATUS_SUCCESS pada keberhasilan, atau nilai NTSTATUS yang sesuai sebaliknya. Jika pemanggil menentukan TRUE untuk parameter Asinkron , dan peristiwa belum terjadi, rutin mengembalikan STATUS_PENDING.
Keterangan
Jika panggilan ke fungsi ZwNotifyChangeKey terjadi dalam mode pengguna, Anda harus menggunakan nama "NtNotifyChangeKey" alih-alih "ZwNotifyChangeKey".
Untuk panggilan dari driver mode kernel, versi NtXxx dan ZwXxx dari rutinitas Windows Native System Services dapat berperilaku berbeda dalam cara mereka menangani dan menafsirkan parameter input. Untuk informasi selengkapnya tentang hubungan antara versi NtXxx dan ZwXxx dari rutinitas, lihat Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 |
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
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