Metodo IRegistryKey::EnumerateKey (portcls.h)

Il EnumerateKey metodo 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 vanno da 0 a 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 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_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.

[in] Length

Specifica le dimensioni in byte del buffer KeyInformation , che il chiamante deve impostare in base all'oggetto 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 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.

Valore restituito

EnumerateKey restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo nel recupero delle informazioni richieste nel buffer KeyInformation . Se le dimensioni del buffer specificate sono troppo piccole 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).

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

ZwEnumerateKey