Condividi tramite


Metodo IRegistryKey::QueryKey (portcls.h)

Il QueryKey metodo recupera informazioni su una chiave del Registro di sistema, inclusi il nome della chiave, la classe chiave e il numero di sottochiavi e le relative dimensioni.

Sintassi

NTSTATUS QueryKey(
  [in]  KEY_INFORMATION_CLASS KeyInformationClass,
  [out] PVOID                 KeyInformation,
  [in]  ULONG                 Length,
  [out] PULONG                ResultLength
);

Parametri

[in] KeyInformationClass

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

  • KeyBasicInformation
  • KeyFullInformation
  • KeyNodeInformation

[out] KeyInformation

Puntatore a un buffer allocato dal chiamante in cui il metodo scrive i dati richiesti. Il buffer contiene una struttura di tipo KEY_BASIC_INFORMATION, KEY_FULL_INFORMATION o KEY_NODE_INFORMATION, a seconda del valore di KeyInformationClass. La struttura è seguita da una stringa di caratteri Unicode la cui dimensione dipende dal tipo di informazioni richieste sulla chiave e dalla lunghezza del nome o della stringa di classe della chiave.

[in] Length

Dimensioni in byte del buffer KeyInformation , che il chiamante deve impostare in base all'oggetto KeyInformationClass specificato. Per ricevere tutti i dati richiesti, il buffer deve avere almeno 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 che specifica il numero di byte effettivamente scritti nel buffer KeyInformation . 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

QueryKey restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo nella copia delle informazioni richieste nel buffer KeyInformation . 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.

Commenti

Se il buffer KeyInformation è 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 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 (include Portcls.h)
IRQL PASSIVE_LEVEL

Vedi anche

IRegistryKey

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

ZwQueryKey