Metode IRegistryKey::QueryValueKey (portcls.h)
Metode ini QueryValueKey
mengambil informasi tentang entri nilai kunci registri, termasuk nama, jenis, ukuran data, dan nilainya.
Sintaks
NTSTATUS QueryValueKey(
[in] PUNICODE_STRING ValueName,
[in] KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
[out] PVOID KeyValueInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
Parameter
[in] ValueName
Penunjuk ke nama entri nilai yang disediakan produsen. String nama ditentukan oleh struktur jenis UNICODE_STRING.
[in] KeyValueInformationClass
Menentukan jenis informasi yang akan dikembalikan dalam buffer. Atur parameter ini ke salah satu nilai enumerasi KEY_VALUE_INFORMATION_CLASS berikut:
- KeyValueBasicInformation
- KeyValueFullInformation
- KeyValuePartialInformation
[out] KeyValueInformation
Arahkan ke buffer yang dialokasikan pemanggil tempat metode menulis data yang diminta. Buffer berisi struktur jenis KEY_VALUE_BASIC_INFORMATION, KEY_VALUE_FULL_INFORMATION, atau KEY_VALUE_PARTIAL_INFORMATION, tergantung pada nilai KeyValueInformationClass. Struktur diikuti oleh data tambahan yang ukurannya tergantung pada jenis data nilai kunci.
[in] Length
Ukuran dalam byte buffer KeyValueInformation , yang harus diatur pemanggil sesuai dengan KeyValueInformationClass yang diberikan. Untuk menerima semua data yang diminta, buffer harus setidaknya sebesar ukuran data yang diminta.
[out] ResultLength
Penunjuk output untuk panjang data yang dihasilkan. Parameter ini menunjuk ke variabel ULONG yang dialokasikan pemanggil tempat metode menulis hitungan yang menentukan jumlah byte yang benar-benar ditulis ke dalam buffer KeyValueInformation . Namun, jika panjang buffer yang ditentukan terlalu kecil untuk berisi informasi, metode sebagai gantinya menghasilkan ukuran buffer yang diperlukan dan mengembalikan STATUS_BUFFER_OVERFLOW atau STATUS_BUFFER_TOO_SMALL. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.
Nilai kembali
QueryValueKey
mengembalikan STATUS_SUCCESS jika panggilan berhasil menyalin informasi yang diminta ke buffer KeyValueInformation . Jika ukuran buffer yang ditentukan terlalu kecil untuk menerima semua informasi yang diminta, metode mengembalikan STATUS_BUFFER_OVERFLOW. Jika ukuran buffer yang ditentukan terlalu kecil untuk menerima salah satu informasi yang diminta, metode mengembalikan STATUS_BUFFER_TOO_SMALL. Jika tidak, metode mengembalikan kode status kesalahan yang sesuai. Tabel berikut ini memperlihatkan beberapa kemungkinan kode kesalahan.
Menampilkan kode | Deskripsi |
---|---|
|
Menunjukkan bahwa salah satu parameter yang diteruskan ke metode tidak valid. |
|
Menunjukkan bahwa entri nilai dengan nama yang ditentukan tidak ditemukan. |
Keterangan
Jika buffer KeyValueInformation terlalu kecil untuk menyimpan informasi yang diminta, metode menulis ukuran yang diperlukan ke *ResultLength dan mengembalikan kode status baik STATUS_BUFFER_OVERFLOW atau STATUS_BUFFER_TOO_SMALL. Metode mengembalikan STATUS_BUFFER_OVERFLOW jika berhasil menulis hanya sebagian dari informasi yang diminta ke buffer. Metode mengembalikan STATUS_BUFFER_TOO_SMALL jika tidak dapat menulis informasi apa pun ke buffer. Nilai yang ditulis ke *ResultLength menunjukkan ukuran buffer minimum yang diperlukan untuk menyimpan semua informasi yang diminta.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | portcls.h (termasuk Portcls.h) |
IRQL | PASSIVE_LEVEL |