Fungsi ZwQueryValueKey (wdm.h)

Rutinitas ZwQueryValueKey mengembalikan entri nilai untuk kunci registri.

Sintaks

NTSYSAPI NTSTATUS ZwQueryValueKey(
  [in]            HANDLE                      KeyHandle,
  [in]            PUNICODE_STRING             ValueName,
  [in]            KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
  [out, optional] PVOID                       KeyValueInformation,
  [in]            ULONG                       Length,
  [out]           PULONG                      ResultLength
);

Parameter

[in] KeyHandle

Tangani ke kunci untuk membaca entri nilai dari. Handel ini dibuat oleh panggilan yang berhasil ke ZwCreateKey atau ZwOpenKey.

[in] ValueName

Arahkan ke nama entri nilai untuk mendapatkan data.

[in] KeyValueInformationClass

Nilai KEY_VALUE_INFORMATION_CLASS yang menentukan jenis informasi yang dikembalikan dalam buffer KeyValueInformation .

[out, optional] KeyValueInformation

Arahkan ke buffer yang dialokasikan penelepon yang menerima informasi yang diminta.

[in] Length

Menentukan ukuran, dalam byte, dari buffer KeyValueInformation .

[out] ResultLength

Penunjuk ke variabel yang menerima ukuran, dalam byte, dari informasi utama. Jika rutinitas ZwQueryValueKey mengembalikan STATUS_SUCCESS, penelepon dapat menggunakan nilai variabel ini untuk menentukan jumlah data yang dikembalikan. Jika rutinitas mengembalikan STATUS_BUFFER_OVERFLOW atau STATUS_BUFFER_TOO_SMALL, penelepon dapat menggunakan nilai variabel ini untuk menentukan ukuran buffer yang diperlukan untuk menyimpan informasi utama.

Mengembalikan nilai

ZwQueryValueKey mengembalikan STATUS_SUCCESS pada keberhasilan, atau kode kesalahan yang sesuai pada kegagalan. Kemungkinan nilai kode kesalahan meliputi:

Menampilkan kode Deskripsi
STATUS_OBJECT_NAME_NOT_FOUND
Nilai registri tidak tersedia.
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_VALUE_INFORMATION_CLASS yang valid.
Peringatan Jika Anda menentukan KeyValueBasicInformation untuk KeyValueInformationClass, Windows 98 dan Windows Me mengembalikan STATUS_SUCCESS meskipun kunci registri atau nama nilai tidak ada.
 

Keterangan

KeyHandle yang diteruskan ke ZwQueryValueKey harus dibuka dengan akses KEY_QUERY_VALUE. Ini dicapai dengan melewati KEY_QUERY_VALUE, KEY_READ, atau KEY_ALL_ACCESS sebagai parameter DesiredAccess ke ZwCreateKey atau ZwOpenKey.

Untuk informasi selengkapnya tentang bekerja dengan kunci registri, lihat Menggunakan Registri di Driver.

Catatan Jika panggilan ke fungsi ini terjadi dalam mode pengguna, Anda harus menggunakan nama "NtQueryValueKey" alih-alih "ZwQueryValueKey".
 
Untuk panggilan dari driver mode kernel, versi NtXxx dan ZwXxx dari rutinItas Windows Native System Services dapat berperilaku berbeda dalam cara mereka menangani dan menginterpretasikan 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

   
Klien minimum yang didukung Tersedia dimulai dengan Windows 2000.
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_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_INFORMATION_CLASS

KEY_VALUE_PARTIAL_INFORMATION

Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli

ZwCreateKey

ZwEnumerateValueKey

ZwOpenKey