Condividi tramite


Oggetti chiave del Registro di sistema

Il driver di sistema PortCls implementa l'interfaccia IRegistryKey per il vantaggio dei driver miniport. Un oggetto IRegistryKey rappresenta una chiave del Registro di sistema. I driver Miniport usano oggetti chiave del Registro di sistema per eseguire le operazioni seguenti:

  • Creare ed eliminare le chiavi del Registro di sistema

  • Enumerare le chiavi del Registro di sistema

  • Eseguire query e impostare le chiavi del Registro di sistema

Quando si esegue una query su un oggetto chiave del Registro di sistema per informazioni su una voce del Registro di sistema nella chiave specificata, la query può restituire le informazioni in uno dei tre formati, ognuna delle quali usa una struttura di query chiave diversa. La tabella seguente mostra i valori di enumerazione KEY_INFORMATION_CLASS che indicano quali delle tre strutture di query chiave vengono restituite dalla query.

valore KEY_INFORMATION_CLASS Key-Query struttura

KeyBasicInformation

KEY_BASIC_INFORMATION

KeyFullInformation

KEY_FULL_INFORMATION

KeyNodeInformation

KEY_NODE_INFORMATION

Per aprire una chiave del Registro di sistema esistente o creare una nuova chiave del Registro di sistema, un driver di scheda può chiamare la funzione PcNewRegistryKey e un driver miniport può chiamare il metodo IPort del driver di porta::NewRegistryKey . Le due chiamate sono simili, ad eccezione del fatto che la funzione PcNewRegistryKey richiede due parametri aggiuntivi, DeviceObject e SubDevice. Per altre informazioni, vedere PcNewRegistryKey.

Quando un driver miniport crea un nuovo oggetto IRegistryKey , l'oggetto apre una sottochiave esistente o crea una nuova sottochiave del Registro di sistema se non esiste. In entrambi i casi, l'oggetto chiave del Registro di sistema archivia l'handle alla chiave. Quando l'oggetto viene rilasciato in seguito e il numero di riferimenti decrementa su zero, l'oggetto chiude automaticamente il relativo handle alla chiave.

L'interfaccia IRegistryKey supporta i metodi seguenti:

IRegistryKey::D eleteKey

IRegistryKey::EnumerateKey

IRegistryKey::EnumerateValueKey

IRegistryKey::NewSubKey

IRegistryKey::QueryKey

IRegistryKey::QueryRegistryValues

IRegistryKey::QueryValueKey

IRegistryKey::SetValueKey