Bagikan melalui


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
STATUS_INVALID_PARAMETER
Menunjukkan bahwa salah satu parameter yang diteruskan ke metode tidak valid.
STATUS_OBJECT_NAME_NOT_FOUND
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

Lihat juga

IRegistryKey

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

UNICODE_STRING

ZwQueryValueKey