Función WdfDeviceOpenRegistryKey (wdfdevice.h)
[Se aplica a KMDF y UMDF]
El método WdfDeviceOpenRegistryKey abre la clave de hardware de un dispositivo o la clave de software de un controlador en el Registro y crea un objeto de clave del Registro de marco que representa la clave del Registro.
Sintaxis
NTSTATUS WdfDeviceOpenRegistryKey(
[in] WDFDEVICE Device,
[in] ULONG DeviceInstanceKeyType,
[in] ACCESS_MASK DesiredAccess,
[in, optional] PWDF_OBJECT_ATTRIBUTES KeyAttributes,
[out] WDFKEY *Key
);
Parámetros
[in] Device
Identificador de un objeto de dispositivo de marco.
[in] DeviceInstanceKeyType
Especifica la clave o subclave que se va a abrir.
Nota
UMDF no admite la creación de subclaves.
Se trata de un OR bit a bit de las marcas siguientes (que se definen en Wdm.h).
Marca DeviceInstanceKeyType | Significado | marco |
---|---|---|
PLUGPLAY_REGKEY_DEVICE | Abre la clave de hardware del dispositivo. | KMDF/UMDF |
PLUGPLAY_REGKEY_DRIVER | Abre la clave de software del controlador. Un controlador UMDF que establece esta marca también debe establecer DesiredAccessen KEY_READ. De lo contrario, este método devuelve STATUS_ACCESS_DENIED. | KMDF/UMDF |
PLUGPLAY_REGKEY_CURRENT_HWPROFILE | Un controlador KMDF usa esta marca para abrir la copia de la clave de hardware o software que se encuentra en el perfil de hardware actual. | KMDF |
PLUGPLAY_REGKEY_DRIVER | WDF_REGKEY_DRIVER_SUBKEY | Un controlador UMDF usa estas marcas juntas para abrir la subclave ServiceName de la clave de software del controlador para el acceso de lectura y escritura. | UMDF |
PLUGPLAY_REGKEY_DEVICE | WDF_REGKEY_DEVICE_SUBKEY | De forma similar, un controlador UMDF usa estas marcas para abrir la subclave ServiceName de la clave de hardware del dispositivo para el acceso de lectura y escritura. | UMDF |
[in] DesiredAccess
Valor ACCESS_MASK con tipo que especifica los derechos de acceso que el controlador solicita para la clave del Registro especificada.
Normalmente, un controlador KMDF solicita KEY_READ, KEY_WRITE o KEY_READ | KEY_WRITE.
Si está escribiendo un controlador UMDF, use la tabla siguiente.
DeviceInstanceKeyType | DesiredAccess |
---|---|
PLUGPLAY_REGKEY_DEVICE | KEY_READ |
PLUGPLAY_REGKEY_DEVICE | WDF_REGKEY_DEVICE_SUBKEY | KEY_READ o KEY_READ | KEY_SET_VALUE |
PLUGPLAY_REGKEY_DRIVER | KEY_READ |
PLUGPLAY_REGKEY_DRIVER | WDF_REGKEY_DRIVER_SUBKEY | KEY_READ o KEY_READ | KEY_SET_VALUE |
Como procedimiento recomendado, solicite solo los tipos de acceso que necesita el controlador.
[in, optional] KeyAttributes
Puntero a una estructura de WDF_OBJECT_ATTRIBUTES que contiene atributos proporcionados por el controlador para el nuevo objeto de clave del Registro. Este parámetro es opcional y se puede WDF_NO_OBJECT_ATTRIBUTES.
[out] Key
Puntero a una ubicación que recibe un identificador para el nuevo objeto de clave del Registro.
Valor devuelto
WdfDeviceOpenRegistryKey devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, el método podría devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
No se llamó a WdfDeviceOpenRegistryKey en IRQL = PASSIVE_LEVEL. |
|
Se especificó un parámetro no válido. Para UMDF, este valor devuelto puede indicar derechos de acceso insuficientes. |
|
No se pudo asignar un objeto de clave del Registro. |
|
La clave del Registro especificada no existe. |
Para obtener una lista de otros valores devueltos que podría devolver el método WdfDeviceOpenRegistryKey , vea Errores de creación de objetos de marco.
El método podría devolver otros valores NTSTATUS.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
Si el controlador debe abrir una clave de hardware o software antes de llamar a WdfDeviceCreate, debe llamar a WdfFdoInitOpenRegistryKey en lugar de WdfDeviceOpenRegistryKey.
Cuando el controlador haya terminado de usar la clave del Registro que abrió con WdfDeviceOpenRegistryKey, el controlador debe llamar a WdfRegistryClose.
Para obtener más información sobre el registro, las claves de hardware y software y los objetos del Registro, vea Uso del Registro en controladores de Framework-Based.
Ejemplos
Para obtener ejemplos de código que usan WdfDeviceOpenRegistryKey, vea WdfRegistryCreateKey, WdfRegistryOpenKey y WdfRegistryQueryValue.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfdevice.h (incluya Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | AccessHardwareKey(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |