Fungsi ZwEnumerateValueKey (wdm.h)

Rutinitas ZwEnumerateValueKey mendapatkan informasi tentang entri nilai kunci yang terbuka.

Sintaks

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

Parameter

[in] KeyHandle

Tangani ke kunci registri yang ingin Anda hitung entri nilainya. Panggilan yang berhasil ke ZwCreateKey atau ZwOpenKey membuat handel ini.

[in] Index

Indeks berbasis nol dari subkunjuk yang Anda inginkan informasi nilainya.

[in] KeyValueInformationClass

Menentukan 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 nilai. Jika rutinitas ini mengembalikan STATUS_SUCCESS, variabel menunjukkan jumlah data yang dikembalikan. Jika rutinitas ini mengembalikan STATUS_BUFFER_OVERFLOW atau STATUS_BUFFER_TOO_SMALL, variabel menunjukkan ukuran buffer yang diperlukan untuk menyimpan informasi nilai.

Nilai kembali

ZwEnumerateValueKey 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_VALUE_INFORMATION_CLASS yang valid.
STATUS_NO_MORE_ENTRIES Nilai Indeks berada di luar rentang untuk kunci registri yang ditentukan oleh KeyHandle. Misalnya, jika kunci memiliki n subkunci, maka untuk nilai apa pun yang lebih besar dari n-1 rutin mengembalikan STATUS_NO_MORE_ENTRIES.

Keterangan

KeyHandle yang diteruskan ke ZwEnumerateValueKey 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.

Indeks hanyalah cara untuk memilih di antara subkunde dengan entri nilai. Dua panggilan ke ZwEnumerateValueKey dengan Indeks yang sama tidak dijamin untuk mengembalikan hasil yang sama.

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 "NtEnumerateValueKey" alih-alih "ZwEnumerateValueKey".

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

   
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_PARTIAL_INFORMATION

Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli

ZwClose

ZwCreateKey

ZwOpenKey

ZwQueryValueKey