Condividi tramite


Metodo IRegistryKey::EnumerateKey (portcls.h)

Il metodo EnumerateKey restituisce informazioni sulle sottochiavi della chiave aperta.

Sintassi

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

Parametri

[in] Index

Specifica l'indice della sottochiave. Questo parametro identifica la sottochiave per cui vengono richieste le informazioni sulla chiave. Se la chiave contiene n sottochiavi, gli indici validi sono compresi tra 0 e n-1. Se l'indice supera questo intervallo, il metodo restituisce STATUS_NO_MORE_ENTRIES.

[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 al buffer delle informazioni sulla chiave. Questo parametro punta 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_INFORMATIONo 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.

[in] Length

Specifica le dimensioni in byte del buffer KeyInformation, che il chiamante deve impostare in base al KeyInformationClass specificato. Affinché la chiamata abbia esito positivo, il buffer deve essere almeno grande quanto i dati scritti dal metodo nel buffer.

[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 KeyInformation. Se la lunghezza del buffer specificata è troppo piccola per contenere le informazioni, il metodo restituisce invece la dimensione del buffer richiesta e restituisce STATUS_BUFFER_OVERFLOW.

Valore restituito

EnumerateKey restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo nel recupero delle informazioni richieste nel buffer KeyInformation. Se la dimensione del buffer specificata è troppo piccola per ricevere tutte le informazioni disponibili, il metodo restituisce STATUS_BUFFER_OVERFLOW. In caso contrario, il metodo restituisce un codice di errore appropriato. La tabella seguente illustra alcuni dei possibili codici di stato restituiti.

Codice restituito Descrizione
STATUS_BUFFER_TOO_SMALL
Indica che il buffer specificato è troppo piccolo per ricevere informazioni.
STATUS_NO_MORE_ENTRIES
Indica che non sono disponibili più sottochiavi (l'indice della sottochiave è maggiore o uguale al numero di sottochiavi).

Fabbisogno

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

Vedere anche

IRegistryKey

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

ZwEnumerateKey