自己做RAS Administration DLL

来源:岁月联盟 编辑:zhuzhu 时间:2007-01-22
RAS是指Remote Access Service,而RAS Administration DLL是指用户自己写的一个动态链接库,它实现了规定的几个函数,由RAS来加载,当有用户连入或断开时,RAS会自动调用这些函数,使得我们可以实现一些附加的需求,比方说可以由自己来决定是否允许一个用户连入,或者在连入和断开的时候记录日志,还可以给用户指定(虚网的)IP:要让RAS知道我们自己编写的DLL在哪里,必须在注册表中创建名为 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/RAS/AdminDll 的键,然后在该键下创建两个字符串型的值:名称值示例DisplayName自定义显示名称,可以任意指定。无于声处听惊雷DLLPathDLL的路径全名,多个DLL名之间用逗号分开(但Windows 2000 Server是不支持多个DLL的,目前仅2003支持)c:/foo/bar.dll

DLL中必须至少实现并export下列四个函数,否则RAS启动会失败:

  • MprAdminAcceptNewLink
  • MprAdminInitializeDll
  • MprAdminLinkHangupNotification
  • MprAdminTerminateDll

通常,还会实现并export(不然DLL做什么呢?):

  • MprAdminAcceptNewConnection
  • MprAdminConnectionHangupNotification

  • MprAdminAcceptNewConnection2
  • MprAdminConnectionHangupNotification2
而在Windows 2000 Server中,DLL还必须实现 MprAdminGetIpAddressForUser 和 MprAdminReleaseIpAddress 这两个函数。