Entrada de simulación en la pantalla de inicio de sesión de Windows, utilizando un controlador

Estoy escribiendo una herramienta de escritorio remoto de código abierto, similar a VNC y TeamViewer. Me di cuenta de que TeamViewer continúa capturando la pantalla en la pantalla Cambiar usuarios o Bloqueo de estación de trabajo, y permite al usuario remoto escribir la contraseña y desbloquear la estación de trabajo. Quiero hacer lo mismo

He leído

Actualizado: interactuando con el usuario en la pantalla de inicio de sesión de Windows

https: //stackoverflow.com/questions/9485530/capturing-image-during-windows-logon-invalid-passwor

Agregar botón de comando a la pantalla de inicio de sesión de Windows

enganche una tecla de acceso rápido desde la pantalla de inicio de sesión de Windows

https: //stackoverflow.com/questions/7183241/launch-windows-on-screen-keyboard-at-logon-screen-on-win

Driver para simular pulsación de teclas

Eliminar la pantalla de inicio de sesión de Windows a través de un servicio

¿Cómo capturar una clave en la pantalla de inicio de sesión de Windows 7?

Ventana de visualización en la pantalla de inicio de sesión con C # en Windows XP

De estas publicaciones, he deducido que simular entradas en una sesión aislada definitivamente no es una simple llamada a SendInput (). Pero, ¿es posible usar un controlador (creo que es específicamente un controlador de filtro de teclado, pero no estoy seguro)? Si es así, estoy pensando en escribir, en C #, un servicio (para que se ejecute fuera de la sesión del usuario) que interactúa con el controlador de Intercepción para simular pulsaciones de teclas.

En respuesta a: "¿por qué no lo intentas?", Todavía no hay un contenedor .NET para Interception para que pueda probar dicho servicio, por lo que si el consenso general concluye que esto no es posible, No quiero pasar el tiempo escribiendo ese contenedor .NET.

Encontréun controlador de teclado llamado Intercepción (que se lanzará de código abierto en el futuro). Puedes directamente encuentre la fuente aquí (la fuente es solo el contenedor API de comunicación C que rodea el controlador del núcleo real).

Otra pregunta que tengo ... Estoy confundido acerca de qué archivos forman un controlador. Su biblioteca DLL de Intercepción programada en C compila a un .DLL. Pero, ¿no son controladores de alguna extensión .sys, cómo compilaría esa DLL de Intercepción en un controlador real, y luego cómo la instalaría?

EDITAR Existe un contenedor .NET. Modifiqué la aplicación de consola de muestra para escribir mi contraseña completa cuando presioné la tecla 'x', y funcionó con éxito, no solo en la pantalla bloqueada de la estación de trabajo, sino también en la pantalla de inicio de sesión de Windows. Entonces funciona.

Editar La biblioteca de contenedor C # para este controlador de teclado está aquí.