Bagikan melalui


Fungsi RegEnumKeyExA (winreg.h)

Menghitung subkuntang kunci registri terbuka yang ditentukan. Fungsi ini mengambil informasi tentang satu subkuntus setiap kali dipanggil.

Sintaksis

LSTATUS RegEnumKeyExA(
  [in]                HKEY      hKey,
  [in]                DWORD     dwIndex,
  [out]               LPSTR     lpName,
  [in, out]           LPDWORD   lpcchName,
                      LPDWORD   lpReserved,
  [in, out]           LPSTR     lpClass,
  [in, out, optional] LPDWORD   lpcchClass,
  [out, optional]     PFILETIME lpftLastWriteTime
);

Parameter

[in] hKey

Handel ke kunci registri terbuka. Kunci harus dibuka dengan hak akses KEY_ENUMERATE_SUB_KEYS. Untuk informasi selengkapnya, lihat Keamanan Kunci Registri dan Hak Akses.

Handel ini dikembalikan oleh RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx, atau fungsi RegOpenKeyTransacted. Ini juga bisa menjadi salah satu kunci berikut yang telah ditentukan sebelumnya:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_USERS

[in] dwIndex

Indeks subkunde yang akan diambil. Parameter ini harus nol untuk panggilan pertama ke fungsi RegEnumKeyEx lalu ditingkatkan untuk panggilan berikutnya.

Karena subkunci tidak diurutkan, subkunci baru apa pun akan memiliki indeks arbitrer. Ini berarti bahwa fungsi dapat mengembalikan subkunci dalam urutan apa pun.

[out] lpName

Penunjuk ke buffer yang menerima nama subkunci, termasuk karakter null yang dihentikan. Fungsi hanya menyalin nama subkunci, bukan hierarki kunci lengkap, ke buffer.

Jika fungsi gagal, tidak ada informasi yang disalin ke buffer ini.

Untuk informasi selengkapnya, lihat Batas Ukuran Elemen Registri.

[in, out] lpcchName

Penunjuk ke variabel yang menentukan ukuran buffer yang ditentukan oleh parameter lpName, dalam karakter. Ukuran ini harus mencakup karakter null yang dihentikan. Jika fungsi berhasil, variabel yang ditunjukkan oleh lpcchName berisi jumlah karakter yang disimpan dalam buffer, tidak termasuk karakter null yang dihentikan.

Untuk menentukan ukuran buffer yang diperlukan, gunakan fungsi RegQueryInfoKey untuk menentukan ukuran subkunci terbesar untuk kunci yang diidentifikasi oleh parameter hKey.

lpReserved

Parameter ini dicadangkan dan harus NULL.

[in, out] lpClass

Penunjuk ke buffer yang menerima kelas yang ditentukan pengguna dari subkunci enumerasi. Parameter ini dapat null.

[in, out, optional] lpcchClass

Pointer ke variabel yang menentukan ukuran buffer yang ditentukan oleh parameter lpClass, dalam karakter. Ukurannya harus mencakup karakter null yang dihentikan. Jika fungsi berhasil, lpcchClass berisi jumlah karakter yang disimpan dalam buffer, tidak termasuk karakter null yang dihentikan. Parameter ini dapat NULL hanya jika lpClass NULL.

[out, optional] lpftLastWriteTime

Pointer ke FILETIME struktur yang menerima waktu di mana subkunci enumerasi terakhir ditulis. Parameter ini dapat null.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS.

Jika fungsi gagal, nilai yang dikembalikan adalah kode kesalahan sistem . Jika tidak ada lagi subkunia yang tersedia, fungsi akan mengembalikan ERROR_NO_MORE_ITEMS.

Jika lpName buffer terlalu kecil untuk menerima nama kunci, fungsi akan mengembalikan ERROR_MORE_DATA.

Komentar

Untuk menghitung subkunci, aplikasi awalnya harus memanggil fungsi RegEnumKeyEx dengan parameter dwIndex diatur ke nol. Aplikasi kemudian harus meningkatkan parameter dwIndex dan memanggil RegEnumKeyEx sampai tidak ada lagi subkunci (artinya fungsi mengembalikan ERROR_NO_MORE_ITEMS).

Aplikasi ini juga dapat mengatur dwIndex ke indeks subkunci terakhir pada panggilan pertama ke fungsi dan mengurangi indeks hingga subkunci dengan indeks 0 dijumlahkan. Untuk mengambil indeks subkunci terakhir, gunakan fungsi RegQueryInfoKey.

Saat aplikasi menggunakan fungsi RegEnumKeyEx, aplikasi tidak boleh melakukan panggilan ke fungsi pendaftaran apa pun yang mungkin mengubah kunci yang dijumlahkan.

Perhatikan bahwa operasi yang mengakses kunci registri tertentu dialihkan. Untuk informasi selengkapnya, lihat Virtualisasi Registri dan Data Aplikasi 32-bit dan 64-bit diRegistri .

Nota

Pada versi Windows lama, API ini juga diekspos oleh kernel32.dll.

Contoh

Misalnya, lihat Menghitung Subkunci Registri.

Nota

Header winreg.h mendefinisikan RegEnumKeyEx sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosem UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Platform Target Windows
Header winreg.h (termasuk Windows.h)
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

FILETIME

RegCreateKeyEx

regDeleteKey

RegOpenKeyEx

RegQueryInfoKey

Fungsi Registri

Gambaran Umum Registri