Fungsi ZwQueryKey (wdm.h)
Rutinitas ZwQueryKey menyediakan informasi tentang kelas kunci registri, serta jumlah dan ukuran subkuntangnya.
Sintaks
NTSYSAPI NTSTATUS ZwQueryKey(
[in] HANDLE KeyHandle,
[in] KEY_INFORMATION_CLASS KeyInformationClass,
[out, optional] PVOID KeyInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
Parameter
[in] KeyHandle
Tangani ke kunci registri untuk mendapatkan informasi tentang. Handel ini dibuat oleh panggilan yang berhasil ke ZwCreateKey atau ZwOpenKey.
[in] KeyInformationClass
Menentukan nilai KEY_INFORMATION_CLASS yang menentukan jenis informasi yang dikembalikan dalam buffer KeyInformation .
[out, optional] KeyInformation
Arahkan ke buffer yang dialokasikan penelepon yang menerima informasi yang diminta.
[in] Length
Menentukan ukuran, dalam byte, dari buffer KeyInformation .
[out] ResultLength
Penunjuk ke variabel yang menerima ukuran, dalam byte, dari informasi kunci yang diminta. Jika ZwQueryKey mengembalikan STATUS_SUCCESS, variabel berisi jumlah data yang dikembalikan. Jika ZwQueryKey mengembalikan STATUS_BUFFER_OVERFLOW atau STATUS_BUFFER_TOO_SMALL, Anda dapat menggunakan nilai variabel untuk menentukan ukuran buffer yang diperlukan.
Nilai kembali
ZwQueryKey mengembalikan STATUS_SUCCESS pada keberhasilan, atau kode kesalahan yang sesuai tentang kegagalan. Kemungkinan nilai kode kesalahan meliputi:
Menampilkan kode | Deskripsi |
---|---|
STATUS_BUFFER_OVERFLOW | Buffer yang disediakan terlalu kecil, dan hanya sebagian data yang telah ditulis ke buffer. *ResultLength diatur ke ukuran minimum yang diperlukan untuk menyimpan informasi yang diminta. |
STATUS_BUFFER_TOO_SMALL | Buffer yang disediakan terlalu kecil, dan tidak ada data yang ditulis ke buffer. *ResultLength diatur ke ukuran minimum yang diperlukan untuk menyimpan informasi yang diminta. |
STATUS_INVALID_PARAMETER | Parameter KeyInformationClass bukan nilai KEY_INFORMATION_CLASS yang valid. |
Keterangan
KeyHandle yang diteruskan ke ZwQueryKey harus dibuka dengan akses KEY_QUERY_VALUE. Ini dicapai dengan meneruskan KEY_QUERY_VALUE, KEY_READ, atau KEY_ALL_ACCESS sebagai parameter DesiredAccess ke ZwCreateKey atau ZwOpenKey.
Jika KeyInformationClass adalah KeyNameInformation atau KeyHandleTagsInformation, persyaratan KEY_QUERY_VALUE tidak berlaku.
ZwQueryKey dapat digunakan untuk mendapatkan informasi yang dapat Anda gunakan untuk mengalokasikan buffer untuk menyimpan data registri, seperti ukuran maksimum entri nilai kunci atau nama subkunjung, atau jumlah subkuntang. Misalnya, Anda dapat memanggil ZwQueryKey, menggunakan informasi yang dikembalikan untuk mengalokasikan buffer untuk subkunci, memanggil ZwEnumerateKey untuk mendapatkan nama subkunci, dan meneruskan nama tersebut ke rutinitas RtlXxxRegistry .
Untuk informasi selengkapnya tentang bekerja dengan kunci registri, lihat Menggunakan Registri di Driver.
Jika panggilan ke fungsi ini terjadi dalam mode pengguna, Anda harus menggunakan nama "NtQueryKey" alih-alih "ZwQueryKey".
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 |
---|---|
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), IrqlZwPassive(wdm), PowerIrpDDis(wdm), ZwRegistryCreate(storport), ZwRegistryCreate(storport), ZwRegistryCreate(wdm), ZwRegistryOpen(storport), ZwRegistryOpen(storport), ZwRegistryOpen(wdm) |
Lihat juga
KEY_VIRTUALIZATION_INFORMATION
Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli