Compartir a través de


Ventajas de escribir controladores UMDF

En este tema se describen las ventajas de escribir un controlador de User-Mode Driver Framework (UMDF) en lugar de un controlador en modo kernel.

Al escribir un controlador UMDF, se beneficia de lo siguiente:

  • Los controladores UMDF contribuyen a una mayor estabilidad del sistema operativo porque solo tienen acceso al espacio de direcciones del proceso en el que se ejecutan.

  • Dado que los controladores UMDF se ejecutan en la cuenta localService , tienen acceso limitado a los datos de un usuario o a los archivos del sistema.

  • Los controladores en modo de usuario funcionan en un entorno mucho más sencillo que los controladores en modo kernel. Por ejemplo, los controladores en modo kernel deben tener en cuenta IRQL, errores de página y contexto de subproceso. Sin embargo, en el modo de usuario, estos problemas no existen. Los controladores en modo de usuario siempre se ejecutan en un subproceso diferente del proceso de solicitud y siempre pueden tomar errores de página.

  • UmDF versión 2 ofrece paridad de características con KMDF en la mayoría de las áreas. Para obtener una comparación completa, consulte Comparación de la funcionalidad de UMDF 2 con KMDF.

  • La versión 2 de UMDF facilita la conversión entre KMDF y UMDF. Consulte Conversión de un controlador KMDF en un controlador UMDF 2 (y viceversa).

  • Puede depurar controladores UMDF mediante un depurador en modo de usuario o, a partir de la versión 2 de UMDF, un depurador en modo kernel.

  • Puede usar los comandos de extensión del depurador de Wdfkd.dll con KMDF y a partir de la versión 2 de UMDF. Para obtener más información, consulta Extensiones del depurador.

Un objetivo fundamental del modelo de WDF general es proporcionar valores predeterminados inteligentes, de modo que pueda centrarse en el hardware del dispositivo y evitar escribir código para realizar tareas comunes a la mayoría de los controladores.

Para lograr este objetivo, el marco está diseñado para trabajar con controladores de forma "opcional". Al escribir un controlador UMDF, proporciona rutinas de devolución de llamada solo para los eventos que afectan al dispositivo. Por ejemplo, algunos dispositivos requieren la intervención inmediatamente después de que estén activados y justo antes de que se desactiven. El controlador de este tipo de dispositivo puede implementar funciones de devolución de llamada a las que el marco llama en esos momentos.

El controlador incluye código para controlar solo los eventos para los que su dispositivo requiere compatibilidad específica del dispositivo. Todos los demás eventos se pueden controlar de forma predeterminada en el marco.

Además, un controlador puede configurar sus colas de solicitudes de E/S para que el marco deje de enviar solicitudes mientras el dispositivo está en un estado de bajo consumo y reanuda el envío después de que el dispositivo haya vuelto al estado operativo. Del mismo modo, si llega una solicitud de E/S mientras el dispositivo está en un estado de bajo consumo, el marco puede activar automáticamente el dispositivo.