Share via


Control de usuario del comportamiento inactivo y de reactivación del dispositivo

Si un dispositivo tiene funcionalidades de encendido o reactivación inactivas, puede decidir si se debe permitir a los usuarios habilitar o deshabilitar estas funcionalidades.

El controlador puede usar miembros de la estructura de WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS para especificar si los usuarios con acceso al registro pueden habilitar o deshabilitar la funcionalidad de apagado inactivo de un dispositivo.

El controlador puede usar miembros de la estructura de WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS para especificar si los usuarios con acceso al registro pueden habilitar o deshabilitar la funcionalidad de reactivación de un dispositivo.

Ambas estructuras permiten que el controlador habilite la funcionalidad, deshabilite la funcionalidad o proporcione a los usuarios el control de la funcionalidad. Para dar control a los usuarios, en la estructura de configuración adecuada, el controlador establece el miembro UserControlOfIdleSettings o UserControlOfWakeSettings en IdleAllowUserControl o WakeAllowUserControl, respectivamente, y el miembro Enabled en WdfTrue o WdfUseDefault, .

Si el controlador permite a los usuarios modificar la configuración de inactividad y reactivación, el marco proporciona una interfaz de usuario, en forma de página de hoja de propiedades que Administrador de dispositivos muestra para que los usuarios puedan habilitar o deshabilitar las funcionalidades inactivas y de reactivación. (El marco modifica los valores del Registro IdleInWorkingState y WakeFromSleepState . Los controladores y sus archivos de instalación no deben leer ni modificar estos valores).

Si un usuario modifica la configuración de un dispositivo, el marco actualiza el estado de energía del dispositivo para que coincida con la nueva configuración, si es necesario. Por ejemplo, si el usuario deshabilita la funcionalidad de apagado inactivo de un dispositivo mientras el dispositivo ya está en un estado de bajo consumo porque estaba inactivo, el marco devuelve el dispositivo a su estado de funcionamiento.

Si el controlador permite a los usuarios modificar la configuración de inactividad y reactivación, el marco habilita esta configuración de forma predeterminada. Es posible que algunos escritores de controladores quieran deshabilitar inicialmente la configuración antes de permitir que los usuarios los modifiquen.

Por lo tanto, para la versión 1.9 y versiones posteriores de KMDF, el marco proporciona dos valores del Registro definibles por controladores, denominados WdfDefaultIdleInWorkingState y WdfDefaultWakeFromSleepState, que se almacenan en la subclave Device Parameters\WDF del dispositivo, en la clave de hardware del dispositivo. Los valores se escriben REG_DWORD, con "0" que indica que la funcionalidad está deshabilitada y "1" que indica que la funcionalidad está habilitada.

El archivo INF del controlador puede usar una directiva INF AddReg para crear y establecer los valores del Registro WdfDefaultIdleInWorkingState y WdfDefaultWakeFromSleepState . Por ejemplo, si el controlador habilita la funcionalidad de apagado inactivo de un dispositivo, pero si la funcionalidad debe deshabilitarse cuando se instala el dispositivo, el archivo INF del controlador puede establecer WdfDefaultIdleInWorkingState en "0".

El marco examina los valores del Registro WdfDefaultIdleInWorkingState y WdfDefaultWakeFromSleepState solo si el controlador ha establecido el miembro UserControlOfIdleSettings o UserControlOfWakeSettings en IdleAllowUserControl o WakeAllowUserControl, respectivamente, y el miembro Enabled en WdfTrue o WdfUseDefault, en la estructura de configuración adecuada.