Acerca de los archivos DLL de administración de RAS
El archivo DLL de administración de RAS exporta funciones a las que llama el servidor RAS cada vez que un usuario intenta conectarse o desconectarse. Estos son algunos de los posibles usos de un archivo DLL de administración ras:
- Decida si quiere permitir que un usuario se conecte al servidor. El archivo DLL de administración puede proporcionar una comprobación de seguridad además de la autenticación de usuario ras estándar.
- Registre la hora a la que cada usuario se conecta y se desconecta del servidor. Esto puede ser útil para fines de facturación o auditoría.
- Asigne una dirección IP a cada usuario. Esto resulta útil para la seguridad, ya que esta característica se usa para asignar la conexión de un usuario a un equipo específico.
La ubicación del archivo DLL de administración ras se especifica en el registro; consulte Configuración del Registro de DLL de administración de RAS.
RAS admite varios archivos DLL de administración. El registro admite varias ubicaciones DLL. RAS llama a las funciones de los archivos DLL en el orden en que se enumeran los archivos DLL en el registro; consulte Configuración del Registro de DLL de administración de RAS.
Windows 2000 Server: RAS no admite varios archivos DLL.
Un archivo DLL de administración de RAS debe implementar y exportar todas las funciones siguientes:
MprAdminLinkHangupNotification
Además, el archivo DLL de administración de RAS debe implementar y exportar.
MprAdminConnectionHangupNotification
or
MprAdminAcceptNewConnection2 y
MprAdminConnectionHangupNotification2
Si no se implementan todas las funciones necesarias, RAS no se inicia.
Windows 2000 Server: Un archivo DLL de administración debe implementar las funciones MprAdminGetIpAddressForUser y MprAdminReleaseIpAddress . Si el archivo DLL implementa una de estas funciones, también debe implementar la otra.
RAS llama a la función MprAdminInitializeDll cuando el servicio de enrutamiento y acceso remoto se inicia por primera vez. La función MprAdminInitializeDll proporciona una oportunidad para que el archivo DLL de administración realice cualquier inicialización necesaria. Del mismo modo, RAS llama al servicio MprAdminTerminateDll cuando el servicio de enrutamiento y acceso remoto se cierra. Esta función permite que el archivo DLL de administración realice cualquier limpieza necesaria antes de salir.
Las funciones MprAdminAcceptNewConnection y MprAdminConnectionHangupNotification permiten que el archivo DLL audite las conexiones de usuario con el servidor. Un servidor RAS llama a la función MprAdminAcceptNewConnection cada vez que un usuario intenta conectarse. Esta función permite evitar que el usuario se conecte. La función MprAdminAcceptNewConnection también podría generar entradas de registro para facturación o auditoría. Cuando el usuario se desconecta, el servidor RAS llama a la función MprAdminConnectionHangupNotification , que puede registrar la hora en la que se desconectó el usuario.
Las funciones MprAdminAcceptNewConnection2 y MprAdminConnectionHangupNotification2 son similares a MprAdminAcceptNewConnection y MprAdminConnectionHangupNotification. Sin embargo, cuando RAS llama a las funciones MprAdminAcceptNewConnection2 y MprAdminConnectionHangupNotification2 , RAS pasa un parámetro adicional de tipo RAS_CONNECTION_2.
RAS admite varios archivos DLL de administración. El usuario de acceso remoto solo puede conectarse si la implementación de la función MprAdminAcceptNewConnection o MprAdminAcceptNewConnection2 en cada uno de los archivos DLL acepta la conexión. En otras palabras, cada DLL debe aceptar la conexión para que el usuario pueda conectarse.
Es posible que una única conexión RAS use varios vínculos al conectarse a un servidor RAS. Las funciones MprAdminAcceptNewLink y MprAdminLinkHangupNotification permiten que el archivo DLL de administración administre vínculos individuales en una conexión. RAS llama a MprAdminAcceptNewLink cada vez que se establece un nuevo vínculo para una conexión. Dado que todas las conexiones implican al menos un vínculo, RAS siempre llama a MprAdminAcceptNewLink una vez inmediatamente después de que MprAdminAcceptNewConnection o MprAdminAcceptNewConnection2 devuelva, siempre que MprAdminAcceptNewConnection o MprAdminAcceptNewConnection2 acepten la conexión. RAS llama a MprAdminLinkHangupNotification cada vez que se cierra un vínculo para una conexión.
Dado que RAS admite varios archivos DLL de administración, el usuario de acceso remoto solo puede conectarse si la implementación de la función MprAdminAcceptNewLink en cada uno de los archivos DLL acepta la conexión. En otras palabras, cada DLL debe aceptar el vínculo para que se establezca el vínculo.
Una vez que el servidor RAS ha autenticado a un usuario, llama a la función MprAdminGetIpAddressForUser para obtener una dirección IP para el cliente remoto. Esta función proporciona un esquema alternativo para asignar una dirección IP a un usuario de acceso telefónico local. Si no se implementa MprAdminGetIpAddressForUser , un servidor RAS asocia el usuario remoto a una dirección IP seleccionada en un grupo estático de direcciones IP o uno seleccionado por un servidor del Protocolo de configuración dinámica de host (DHCP). La función MprAdminGetIpAddressForUser permite que el archivo DLL invalide esta dirección IP predeterminada y especifique una dirección IP determinada para cada usuario. La función MprAdminGetIpAddressForUser puede establecer una marca que hace que RAS llame a la función MprAdminReleaseIpAddress cuando el usuario se desconecte. Después, el archivo DLL puede usar MprAdminReleaseIpAddress para actualizar su asignación de dirección IP a usuario.
RAS admite varios archivos DLL de administración, pero llama a las funciones MprAdminGetIpAddressForUser y MprAdminReleaseIpAddress solo en el primer archivo DLL que los implementa y exporta. RAS omite las implementaciones de estas funciones en los demás archivos DLL. RAS comprueba los archivos DLL de estas funciones en el orden en que se enumeran en el registro.
RAS serializa las llamadas al archivo DLL de administración. Una llamada a una de las funciones del archivo DLL para un cliente RAS determinado no adelanta una llamada a esa función para un cliente RAS diferente; RAS no llama a la función para el otro cliente hasta que se completa la llamada inicial. Además, la serialización se extiende a determinados grupos de funciones. Las funciones de dirección IP se serializan como un grupo; Una llamada a MprAdminGetIpAddressForUser o MprAdminReleaseIpAddress bloquea las llamadas a ambas funciones hasta que se haya devuelto la llamada inicial. MprAdminAcceptNewConnection y MprAdminConnectionHangupNotification también se serializan como un grupo.
RAS ejecuta las funciones que asignan direcciones IP en un proceso; Las funciones para las notificaciones de conexión y desconexión se ejecutan en otro proceso. Por lo tanto, el archivo DLL no depende de los datos compartidos entre estos dos conjuntos de funciones.
No llame a ninguna de las funciones de administración de RAS ni a las funciones de administración de usuarios de RAS desde dentro de una función de llamada. Las llamadas a estas funciones no se devolverán cuando se realicen desde dentro de una función de llamada.
El servidor RAS registra un error en el registro de eventos del sistema si se produce un error cuando intenta cargar un archivo DLL de administración de RAS o al llamar a una de las funciones del archivo DLL. Esto puede ocurrir, por ejemplo, si el archivo DLL especificó el nombre incorrecto para una función exportada o si no incluía el nombre de la función en el archivo DEF. La entrada del registro de eventos indica el motivo del error.
Windows 2000/NT: No se admiten varios archivos DLL de administración.