Utilisation du Registre dans les pilotes UMDF 1.x

Avertissement

UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2.

Les exemples UMDF 1 archivés sont disponibles dans la mise à jour des exemples de pilotes Windows 11, version 22H2 - Mai 2022.

Pour plus d’informations, consultez Prise en main avec UMDF.

Les pilotes basés sur UMDF peuvent lire et écrire des valeurs dans le Registre à l’aide d’interfaces de l’objet de magasin de propriétés.

Les pilotes basés sur UMDF peuvent accéder à quatre types de clés de Registre. Les pilotes peuvent créer, lire et écrire des sous-clés et des valeurs sous ces clés. Les types de clés de Registre suivants sont disponibles pour les pilotes UMDF :

  • Clés matérielles

    Le gestionnaire PnP crée une clé matérielle, ou clé d’appareil, pour chaque appareil, dans laquelle il stocke les informations d’identification uniques de l’appareil.

    Votre pilote peut récupérer et modifier certaines valeurs de propriété sous la clé matérielle. L’emplacement des valeurs stockées dépend de la méthode que vous utilisez pour y accéder.

    Les valeurs de propriété créées à l’aide des méthodes PropertyStore sont stockées dans la sous-clé \Device Parameters , sous la clé matérielle. Pour accéder à ces propriétés, votre pilote appelle l’une des méthodes suivantes pour obtenir une interface de magasin de propriétés.

    IWDFDevice::RetrieveDevicePropertyStore
    Obtient un pointeur vers une interface IWDFNamedPropertyStore .

    IWDFDeviceInitialize::RetrieveDevicePropertyStore
    Obtient un pointeur vers une interface IWDFNamedPropertyStore .

    IWDFPropertyStoreFactory::RetrieveDevicePropertyStore
    Obtient un pointeur vers une interface IWDFNamedPropertyStore2 . Vous pouvez utiliser le paramètre SubkeyPath pour spécifier des valeurs sous une sous-clé créée par le pilote, telle que \Device Parameters\DriverServiceName\subkey.

    Les pilotes ont un accès en lecture seule aux valeurs de la sous-clé \Paramètres de périphérique et ne peuvent pas accéder à \Device Parameters\WDF ou \Device Parameters\WUDF.

    Les valeurs de propriété qui ont été créées à l’aide du modèle Unified Device Property sont stockées dans la sous-clé \Properties , sous la clé matérielle.

    Pour accéder à ces propriétés, votre pilote appelle IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore pour obtenir une interface de magasin de propriétés. Ensuite, le pilote peut utiliser l’interface IWDFUnifiedPropertyStore pour modifier et récupérer les paramètres actuels des propriétés de l’appareil.

  • Clés logicielles

    La clé logicielle d’un pilote est également appelée clé de pilote , car le Registre contient une clé logicielle pour chaque pilote. Le Registre contient une liste de toutes les classes d’appareils, et la clé logicielle de chaque pilote se trouve sous son entrée de classe de périphérique. Le système stocke des informations sur chaque pilote sous sa clé logicielle.

    Votre pilote peut appeler IWDFPropertyStoreFactory::RetrieveDevicePropertyStore pour obtenir un accès en lecture ou en écriture aux valeurs sous sa clé logicielle. Le pilote peut lire et écrire des informations spécifiques au pilote qui ne sont pas associées à des appareils spécifiques.

  • Clés d’interface de l’appareil

    Le Registre contient des clés pour toutes les classes d’interface de périphérique créées par les pilotes. Sous chacune de ces clés se trouve une entrée pour chaque instance de la classe d’interface de périphérique qu’un pilote a inscrite.

    Si votre pilote a inscrit un instance d’une classe d’interface de périphérique, il peut lire et écrire des valeurs sous l’entrée du Registre pour cette instance en appelant IWDFPropertyStoreFactory::RetrieveDevicePropertyStore. Le pilote peut lire et écrire des informations spécifiques instance sur l’interface du périphérique.

  • Clé DEVICEMAP

    Le Registre contient une clé HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP que certains pilotes des technologies plus anciennes, telles que les ports série et parallèle, utilisent. Si votre pilote prend en charge une technologie qui utilise la clé DEVICEMAP , il peut accéder aux sous-clés et aux valeurs sous la clé en appelant IWDFPropertyStoreFactory::RetrieveDevicePropertyStoreStore.

Une fois qu’un pilote a appelé l’une des méthodes RetrieveDevicePropertyStore pour ouvrir une sous-clé de Registre, le pilote peut utiliser les méthodes exposées par IWDFNamedPropertyStore, IWDFNamedPropertyStore2 ou IWDFUnifiedPropertyStore pour créer, lire et écrire des valeurs sous une sous-clé. L’interface IWDFNamedPropertyStore2 permet également aux pilotes de supprimer des valeurs.

Pour plus d’informations sur les clés de Registre pour les pilotes, consultez Vue d’ensemble des arborescences et clés du Registre.