Fungsi RegQueryMultipleValuesA (winreg.h)
Mengambil jenis dan data untuk daftar nama nilai yang terkait dengan kunci registri terbuka.
Sintaks
LSTATUS RegQueryMultipleValuesA(
[in] HKEY hKey,
[out] PVALENTA val_list,
[in] DWORD num_vals,
[out, optional] LPSTR lpValueBuf,
[in, out, optional] LPDWORD ldwTotsize
);
Parameter
[in] hKey
Handel ke kunci registri terbuka. Kunci harus dibuka dengan hak akses KEY_QUERY_VALUE. Untuk mengetahui informasi selengkapnya, lihat
Keamanan Kunci Registri dan Hak Akses.
Handel ini dikembalikan oleh fungsi RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx, atau RegOpenKeyTransacted . Ini juga bisa menjadi salah satu kunci yang telah ditentukan sebelumnya berikut:
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_CONFIG
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_PERFORMANCE_DATA
- HKEY_USERS
[out] val_list
Penunjuk ke array dari
Struktur VALENT yang menjelaskan satu atau beberapa entri nilai. Pada input, anggota ve_valuename dari setiap struktur harus berisi penunjuk ke nama nilai yang akan diambil. Fungsi gagal jika salah satu nilai yang ditentukan tidak ada di kunci yang ditentukan.
Jika fungsi berhasil, setiap elemen array berisi informasi untuk nilai yang ditentukan.
[in] num_vals
Jumlah elemen dalam array val_list .
[out, optional] lpValueBuf
Penunjuk ke buffer. Jika fungsi berhasil, buffer menerima data untuk setiap nilai.
Jika lpValueBuf adalah NULL, nilai yang diarahkan oleh parameter ldwTotsize harus nol, dalam hal ini fungsi mengembalikan ERROR_MORE_DATA dan ldwTotsize menerima ukuran buffer yang diperlukan, dalam byte.
[in, out, optional] ldwTotsize
Penunjuk ke variabel yang menentukan ukuran buffer yang diacu oleh parameter lpValueBuf , dalam byte. Jika fungsi berhasil, ldwTotsize menerima jumlah byte yang disalin ke buffer. Jika fungsi gagal karena buffer terlalu kecil, ldwTotsize menerima ukuran yang diperlukan, dalam byte.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS.
Jika fungsi gagal, nilai yang dikembalikan adalah salah satu kode kesalahan berikut.
Menampilkan kode | Deskripsi |
---|---|
|
RegQueryMultipleValues tidak dapat membuat instans atau mengakses penyedia kunci dinamis. |
|
Buffer yang diacu oleh lpValueBuf terlalu kecil. Dalam hal ini, ldwTotsize menerima ukuran buffer yang diperlukan. |
|
Ukuran total data yang diminta (ukuran array val_list + ldwTotSize) lebih dari batas sistem satu megabyte. |
Keterangan
Fungsi RegQueryMultipleValues memungkinkan aplikasi untuk mengkueri satu atau beberapa nilai kunci statis atau dinamis. Jika kunci target adalah kunci statis, sistem menyediakan semua nilai dengan cara atomik. Untuk mencegah serialisasi yang berlebihan, data agregat yang dikembalikan oleh fungsi tidak boleh melebihi satu megabyte.
Jika kunci target adalah kunci dinamis, penyedianya harus menyediakan semua nilai dengan cara atomik. Ini berarti penyedia harus mengisi buffer hasil secara sinkron, memberikan tampilan yang konsisten dari semua nilai dalam buffer sambil menghindari serialisasi yang berlebihan. Penyedia dapat menyediakan paling banyak satu megabyte dari total data output selama panggilan atomik ke fungsi ini.
RegQueryMultipleValues didukung dari jarak jauh; artinya, parameter hKey yang diteruskan ke fungsi dapat merujuk ke komputer jarak jauh.
Catatan
Header winreg.h mendefinisikan RegQueryMultipleValues sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor 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
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winreg.h (termasuk Windows.h) |
Pustaka | Advapi32.lib |
DLL | Advapi32.dll |