WdfDeviceOpenRegistryKey, fonction (wdfdevice.h)
[S’applique à KMDF et UMDF]
La méthode WdfDeviceOpenRegistryKey ouvre la clé matérielle d’un appareil ou la clé logicielle d’un pilote dans le Registre et crée un objet de clé de registre framework qui représente la clé de Registre.
Syntaxe
NTSTATUS WdfDeviceOpenRegistryKey(
[in] WDFDEVICE Device,
[in] ULONG DeviceInstanceKeyType,
[in] ACCESS_MASK DesiredAccess,
[in, optional] PWDF_OBJECT_ATTRIBUTES KeyAttributes,
[out] WDFKEY *Key
);
Paramètres
[in] Device
Handle vers un objet d’appareil framework.
[in] DeviceInstanceKeyType
Spécifie la clé ou la sous-clé à ouvrir.
Note
UMDF ne prend pas en charge la création de sous-clés.
Il s’agit d’une or au niveau du bit des indicateurs suivants (qui sont définis dans Wdm.h).
Indicateur DeviceInstanceKeyType | Signification | Cadre |
---|---|---|
PLUGPLAY_REGKEY_DEVICE | Ouvre la clé matérielle de l’appareil. | KMDF/UMDF |
PLUGPLAY_REGKEY_DRIVER | Ouvre la clé logicielle du pilote. Un pilote UMDF qui définit cet indicateur doit également définir DesiredAccess sur KEY_READ. Sinon, cette méthode retourne STATUS_ACCESS_DENIED. | KMDF/UMDF |
PLUGPLAY_REGKEY_CURRENT_HWPROFILE | Un pilote KMDF utilise cet indicateur pour ouvrir la copie de la clé matérielle ou logicielle qui se trouve dans le profil matériel actuel. | KMDF |
PLUGPLAY_REGKEY_DRIVER | WDF_REGKEY_DRIVER_SUBKEY | Un pilote UMDF utilise ces indicateurs ensemble pour ouvrir l'ServiceName sous-clé de la clé logicielle du pilote pour l’accès en lecture/écriture. | UMDF |
PLUGPLAY_REGKEY_DEVICE | WDF_REGKEY_DEVICE_SUBKEY | De même, un pilote UMDF utilise ces indicateurs pour ouvrir la sous-clé ServiceName de la clé matérielle de l’appareil pour l’accès en lecture/écriture. | UMDF |
[in] DesiredAccess
Valeur ACCESS_MASK-typée qui spécifie les droits d’accès demandés par le pilote pour la clé de Registre spécifiée.
Un pilote KMDF demande généralement KEY_READ, KEY_WRITEou KEY_READ | KEY_WRITE.
Si vous écrivez un pilote UMDF, utilisez le tableau suivant.
DeviceInstanceKeyType | DesiredAccess |
---|---|
PLUGPLAY_REGKEY_DEVICE | KEY_READ |
PLUGPLAY_REGKEY_DEVICE | WDF_REGKEY_DEVICE_SUBKEY | KEY_READ ou KEY_READ | KEY_SET_VALUE |
PLUGPLAY_REGKEY_DRIVER | KEY_READ |
PLUGPLAY_REGKEY_DRIVER | WDF_REGKEY_DRIVER_SUBKEY | KEY_READ ou KEY_READ | KEY_SET_VALUE |
En guise de meilleure pratique, demandez uniquement les types d’accès dont votre pilote a besoin.
[in, optional] KeyAttributes
Pointeur vers une structure WDF_OBJECT_ATTRIBUTES qui contient des attributs fournis par le pilote pour le nouvel objet de clé de Registre. Ce paramètre est facultatif et peut être WDF_NO_OBJECT_ATTRIBUTES.
[out] Key
Pointeur vers un emplacement qui reçoit un handle vers le nouvel objet de clé de Registre.
Valeur de retour
WdfDeviceOpenRegistryKey retourne STATUS_SUCCESS si l’opération réussit. Sinon, la méthode peut retourner l’une des valeurs suivantes :
Retourner le code | Description |
---|---|
|
WdfDeviceOpenRegistryKey n’a pas été appelée à IRQL = PASSIVE_LEVEL. |
|
Un paramètre non valide a été spécifié. Pour UMDF, cette valeur de retour peut indiquer des droits d’accès insuffisants. |
|
Impossible d’allouer un objet de clé de Registre. |
|
La clé de Registre spécifiée n’existe pas. |
Pour obtenir la liste d’autres valeurs de retour que la méthode WdfDeviceOpenRegistryKey peut retourner, consultez Framework Object Creation Errors.
La méthode peut retourner d’autres valeurs NTSTATUS .
Une vérification de bogue se produit si le pilote fournit un handle d’objet non valide.
Remarques
Si votre pilote doit ouvrir une clé matérielle ou logicielle avant d’avoir appelé WdfDeviceCreate, il doit appeler WdfFdoInitOpenRegistryKey au lieu de WdfDeviceOpenRegistryKey.
Lorsque le pilote a terminé d’utiliser la clé de Registre qu’il a ouverte avec WdfDeviceOpenRegistryKey, le pilote doit appeler WdfRegistryClose.
Pour plus d’informations sur le Registre, les clés matérielles et logicielles et les objets de Registre, consultez Utilisation du Registre dans Framework-Based Drivers.
Exemples
Pour obtenir des exemples de code qui utilisent WdfDeviceOpenRegistryKey, consultez WdfRegistryCreateKey, WdfRegistryOpenKeyet WdfRegistryQueryValue.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
version minimale de KMDF | 1.0 |
version minimale de UMDF | 2.0 |
d’en-tête | wdfdevice.h (include Wdf.h) |
bibliothèque | Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
règles de conformité DDI | AccessHardwareKey(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |