Condividi tramite


Metodo IRegistryKey::QueryValueKey (portcls.h)

Il metodo QueryValueKey recupera informazioni sulle voci di valore di una chiave del Registro di sistema, inclusi i nomi, i tipi, le dimensioni dei dati e i valori.

Sintassi

NTSTATUS QueryValueKey(
  [in]  PUNICODE_STRING             ValueName,
  [in]  KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
  [out] PVOID                       KeyValueInformation,
  [in]  ULONG                       Length,
  [out] PULONG                      ResultLength
);

Parametri

[in] ValueName

Puntatore al nome fornito dal produttore della voce del valore. La stringa del nome viene specificata da una struttura di tipo UNICODE_STRING.

[in] KeyValueInformationClass

Specifica il tipo di informazioni da restituire nel buffer. Impostare questo parametro su uno dei valori di enumerazione KEY_VALUE_INFORMATION_CLASS seguenti:

  • KeyValueBasicInformation
  • KeyValueFullInformation
  • KeyValuePartialInformation

[out] KeyValueInformation

Puntatore a un buffer allocato dal chiamante in cui il metodo scrive i dati richiesti. Il buffer contiene una struttura di tipo KEY_VALUE_BASIC_INFORMATION, KEY_VALUE_FULL_INFORMATIONo KEY_VALUE_PARTIAL_INFORMATION, a seconda del valore di KeyValueInformationClass. La struttura è seguita da dati aggiuntivi le cui dimensioni dipendono dal tipo di dati del valore della chiave.

[in] Length

Dimensioni in byte del buffer di KeyValueInformation, che il chiamante deve impostare in base all'KeyValueInformationClass. Per ricevere tutti i dati richiesti, il buffer deve essere almeno grande quanto le dimensioni dei dati richiesti.

[out] ResultLength

Puntatore di output per la lunghezza dei dati risultanti. Questo parametro punta a una variabile ULONG allocata dal chiamante in cui il metodo scrive un conteggio specificando il numero di byte effettivamente scritti nel buffer KeyValueInformation. Se la lunghezza del buffer specificata è troppo piccola per contenere le informazioni, il metodo restituisce invece le dimensioni del buffer necessarie e restituisce STATUS_BUFFER_OVERFLOW o STATUS_BUFFER_TOO_SMALL. Per altre informazioni, vedere la sezione Osservazioni seguente.

Valore restituito

QueryValueKey restituisce STATUS_SUCCESS se la chiamata è riuscita a copiare le informazioni richieste nel buffer KeyValueInformation. Se la dimensione del buffer specificata è troppo piccola per ricevere tutte le informazioni richieste, il metodo restituisce STATUS_BUFFER_OVERFLOW. Se la dimensione del buffer specificata è troppo piccola per ricevere una delle informazioni richieste, il metodo restituisce STATUS_BUFFER_TOO_SMALL. In caso contrario, il metodo restituisce un codice di stato di errore appropriato. La tabella seguente illustra alcuni dei possibili codici di errore.

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
Indica che uno dei parametri passati al metodo non è valido.
STATUS_OBJECT_NAME_NOT_FOUND
Indica che la voce di valore con il nome specificato non è stata trovata.

Osservazioni

Se il buffer KeyValueInformation è troppo piccolo per contenere le informazioni richieste, il metodo scrive le dimensioni necessarie in * ResultLength e restituisce un codice di stato di STATUS_BUFFER_OVERFLOW o STATUS_BUFFER_TOO_SMALL. Il metodo restituisce STATUS_BUFFER_OVERFLOW se ha avuto esito positivo nella scrittura solo di parte delle informazioni richieste nel buffer. Il metodo restituisce STATUS_BUFFER_TOO_SMALL se non è stato possibile scrivere informazioni nel buffer. Il valore scritto in *ResultLength indica le dimensioni minime del buffer necessarie per contenere tutte le informazioni richieste.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione portcls.h (include Portcls.h)
IRQL PASSIVE_LEVEL

Vedere anche

IRegistryKey

KEY_VALUE_BASIC_INFORMATION

KEY_VALUE_FULL_INFORMATION

KEY_VALUE_PARTIAL_INFORMATION

UNICODE_STRING

ZwQueryValueKey