Metodo IRegistryKey::QueryValueKey (portcls.h)
Il QueryValueKey
metodo 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 seguenti KEY_VALUE_INFORMATION_CLASS:
- 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_INFORMATION o 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 KeyValueInformation , che il chiamante deve impostare in base all'oggetto KeyValueInformationClass specificato. Per ricevere tutti i dati richiesti, il buffer deve essere almeno pari alla dimensione 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 ulteriori informazioni, vedere la sezione Osservazioni successiva.
Valore restituito
QueryValueKey
restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo nella copia delle 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 mostra alcuni dei possibili codici di errore.
Codice restituito | Descrizione |
---|---|
|
Indica che uno dei parametri passati al metodo non è valido. |
|
Indica che la voce valore con il nome specificato non è stata trovata. |
Commenti
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 è riuscito a scrivere solo parte delle informazioni richieste nel buffer. Il metodo restituisce STATUS_BUFFER_TOO_SMALL se non è stato in grado di scrivere informazioni nel buffer. Il valore scritto in *ResultLength indica la dimensione minima del buffer necessaria per contenere tutte le informazioni richieste.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | portcls.h (includere Portcls.h) |
IRQL | PASSIVE_LEVEL |