Partager via


Objets de clé de Registre

Le pilote système PortCls implémente l’interface IRegistryKey pour l'usage des pilotes miniport. Un objet IRegistryKey représente une clé de Registre. Les pilotes miniport utilisent des objets de clé de Registre pour effectuer les opérations suivantes :

  • Créer et supprimer des clés de Registre

  • Énumérer les clés de Registre

  • Interroger et définir des clés de Registre

Lors de l’interrogation d’un objet de clé de Registre pour obtenir des informations sur une entrée de Registre sous la clé spécifiée, la requête peut générer les informations dans l’un des trois formats, chacune utilisant une structure de requête de clé différente. Le tableau suivant montre les valeurs d’énumération KEY_INFORMATION_CLASS qui indiquent laquelle des trois structures de requête clé est produite par la requête.

Classe d'information clé (KEY_INFORMATION_CLASS) Valeur Key-Query Structure

KeyBasicInformation

KEY_BASIC_INFORMATION

KeyFullInformation

KEY_FULL_INFORMATION

KeyNodeInformation

KEY_NODE_INFORMATION

Pour ouvrir une clé de Registre existante ou créer une clé de Registre, un pilote d’adaptateur peut appeler la fonction PcNewRegistryKey et un pilote miniport peut appeler la méthode IPort ::NewRegistryKey du pilote de port. Les deux appels sont similaires, sauf que la fonction PcNewRegistryKey nécessite deux paramètres supplémentaires, DeviceObject et SubDevice. Pour plus d’informations, consultez PcNewRegistryKey.

Lorsqu’un pilote miniport crée un objet IRegistryKey , l’objet ouvre une sous-clé existante ou crée une sous-clé de Registre si aucune clé n’existe. Dans les deux cas, l’objet de clé de Registre stocke le handle sur la clé. Lorsque cet objet est libéré ultérieurement et que son nombre de références décrémente à zéro, l’objet ferme automatiquement sa poignée à la clé.

L’interface IRegistryKey prend en charge les méthodes suivantes :

IRegistryKey::DeleteKey

IRegistryKey::EnumerateKey

IRegistryKey ::EnumerateValueKey

IRegistryKey ::NewSubKey

IRegistryKey ::QueryKey

IRegistryKey ::QueryRegistryValues

IRegistryKey::QueryValueKey

IRegistryKey ::SetValueKey