Personalización de Winlogon
Personalice el comportamiento de Winlogon mediante la implementación de un proveedor de credenciales. Para obtener información sobre los proveedores de credenciales, vea ICredentialProvider Interface.
Windows Server 2003 y Windows XP: No se admiten los proveedores de credenciales.
En las secciones siguientes se describen las formas de personalizar Winlogon en versiones de Windows anteriores a Windows Vista.
Nota:
Las DLL de GINA y los paquetes de notificación de Winlogon se omiten en Windows Vista.
Paquetes de notificación de Winlogon
Un paquete de notificación de Winlogon es un archivo DLL que exporta funciones que controlan eventos de Winlogon. Por ejemplo, cuando un usuario inicia sesión en el sistema, Winlogon llama a cada paquete de notificación para proporcionar información sobre el evento. Para obtener más información, consulte Paquetes de notificación de Winlogon.
Códigos auxiliares de GINA
Un código auxiliar de GINA es un archivo DLL de GINA personalizado que usa las implementaciones de la función de exportación de una DLL de GINA instalada anteriormente (normalmente MsGina.dll). Un código auxiliar de GINA obtiene punteros a cada función exportada por la DLL de GINA instalada anteriormente. A continuación, cada función de código auxiliar de GINA usa el puntero de función adecuado para llamar a la función correspondiente en el archivo DLL de GINA instalado anteriormente.
Importante
Cada función de código auxiliar de GINA debe llamar a la función correspondiente en la GINA instalada anteriormente.
Una función de código auxiliar de GINA puede implementar funcionalidad adicional en una o varias de sus funciones de exportación. Por ejemplo, la función WlxLoggedOutSAS de un código auxiliar de GINA podría comprobar la hora actual antes de llamar a la función WlxLoggedOutSAS de la MsGina.dll. Si la hora actual se encontraba dentro de un intervalo específico, la función de código auxiliar podría mostrar un mensaje que indica que no se permite el inicio de sesión durante ese período de tiempo y devolver WLX_SAS_ACTION_NONE a Winlogon. A continuación, se llamaría a la función WlxLoggedOutSAS del MsGina.dll solo durante el período de tiempo permitido.
La aplicación de código auxiliar de GINA obtiene una tabla de distribución a las funciones de compatibilidad de Winlogon a través del parámetro pWinlogonFunctions de la función WlxInitialize . La aplicación de código auxiliar de GINA puede usar esta tabla de distribución para llamar a funciones de soporte técnico de Winlogon. Por ejemplo, una aplicación de código auxiliar de GINA puede llamar a la función WlxSasNotify para provocar un evento de secuencia de atención segura (SAS) cuando se inserta una tarjeta inteligente en un lector.
Para obtener más información sobre cómo crear un código auxiliar de GINA, vea el ejemplo de códigos auxiliares de Gina en el directorio \Samples\Security\Gina\GinaStub de una instalación del Kit de desarrollo de software de plataforma (SDK).
Nota:
Todas las llamadas entre una GINA y Winlogon deben estar dentro de un único subproceso.
Enlaces de GINA
Un enlace de GINA es un código auxiliar de GINA que, en su implementación de la función WlxInitialize , reemplaza el puntero a la función de compatibilidad WlxDialogBoxParam en la tabla de distribución con un puntero a su propia implementación de la función WlxDialogBoxParam . Como resultado, cada vez que la GINA instalada anteriormente (normalmente MsGina.dll) llama a la función WlxDialogBoxParam , se llama a la función implementada por el enlace de GINA.
La función WlxDialogBoxParam implementada por el enlace GINA puede reemplazar el procedimiento de devolución de llamada DialogProc que responde a un evento de cuadro de diálogo específico.
Esto proporciona al enlace GINA control total sobre la apariencia y el comportamiento de todos los cuadros de diálogo que MsGina.dll crea.
Para obtener más información sobre cómo crear un enlace de GINA, consulte el ejemplo de Gina Hooks en el directorio \Samples\Security\Gina\GinaHook de una instalación del SDK de plataforma.
Nota:
Todas las llamadas entre una GINA y Winlogon deben estar dentro de un único subproceso.