RAS 관리 DLL은 사용자가 연결 또는 연결을 끊으려고 할 때마다 RAS 서버에서 호출하는 함수를 내보냅니다. RAS 관리 DLL에 사용할 수 있는 몇 가지 용도는 다음과 같습니다.
- 사용자가 서버에 연결할 수 있도록 허용할지 여부를 결정합니다. 관리 DLL은 표준 RAS 사용자 인증 외에도 보안 검사를 제공할 수 있습니다.
- 각 사용자가 서버에 연결하고 서버에서 연결을 끊는 시간을 기록합니다. 이는 청구 또는 감사 목적으로 유용할 수 있습니다.
- 각 사용자에게 IP 주소를 할당합니다. 이 기능은 사용자의 연결을 특정 컴퓨터에 매핑하는 데 사용되므로 보안에 유용합니다.
RAS 관리 DLL의 위치는 레지스트리에 지정됩니다. RAS 관리 DLL 레지스트리 설치참조하세요.
RAS는 여러 관리 DLL을 지원합니다. 레지스트리는 여러 DLL 위치를 지원합니다. RAS는 DLL이 레지스트리에 나열되는 순서대로 DLL의 함수를 호출합니다. RAS 관리 DLL 레지스트리 설치참조하세요.
Windows 2000 Server: RAS는 여러 DLL을 지원하지 않습니다.
RAS 관리 DLL은 다음 함수를 모두 구현하고 내보내야 합니다.
mprAdminLinkHangupNotification
또한 RAS 관리 DLL은 다음 중 하나를 구현하고 내보내야 합니다.
mprAdminAcceptNewConnection및
MprAdminConnectionHangupNotification
또는
MprAdminAcceptNewConnection2 및
MprAdminConnectionHangupNotification2
필요한 모든 함수가 구현되지 않으면 RAS가 시작되지 않습니다.
Windows 2000 서버: 관리 DLL은 MprAdminGetIpAddressForUser 및 mprAdminReleaseIpAddress함수를구현해야 합니다. DLL이 이러한 함수 중 하나를 구현하는 경우 다른 함수도 구현해야 합니다.
RAS는 라우팅 및 원격 액세스 서비스가 처음 시작될 때 MprAdminInitializeDll 함수를 호출합니다. MprAdminInitializeDll 함수는 관리 DLL이 필요한 초기화를 수행할 수 있는 기회를 제공합니다. 마찬가지로 RAS는 라우팅 및 원격 액세스 서비스가 종료될 때 MprAdminTerminateDll 서비스를 호출합니다. 이 함수를 사용하면 관리 DLL이 종료하기 전에 필요한 정리를 수행할 수 있습니다.
MprAdminAcceptNewConnection 및 MprAdminConnectionHangupNotification 함수를 사용하면 DLL이 서버에 대한 사용자 연결을 감사할 수 있습니다. RAS 서버는 사용자가 연결을 시도할 때마다 MprAdminAcceptNewConnection 함수를 호출합니다. 이 함수를 사용하면 사용자가 연결되지 않도록 할 수 있습니다. MprAdminAcceptNewConnection 함수는 청구 또는 감사에 대한 로그 항목을 생성할 수도 있습니다. 사용자가 연결을 끊으면 RAS 서버는 MprAdminConnectionHangupNotification 함수를 호출하여 사용자의 연결이 끊긴 시간을 기록할 수 있습니다.
MprAdminAcceptNewConnection2 및 MprAdminConnectionHangupNotification2 함수는 MprAdminAcceptNewConnection 및 MprAdminConnectionHangupNotification와 유사합니다. 그러나 RAS가 MprAdminAcceptNewConnection2과 MprAdminConnectionHangupNotification2 함수를 호출할 때, RAS는 RAS_CONNECTION_2형식의 추가 매개 변수를 전달합니다.
RAS는 여러 관리 DLL을 지원합니다. 원격 액세스 사용자는 각 DLL에서 mprAdminAcceptNewConnection 또는 MprAdminAcceptNewConnection2 함수의 구현이 연결을 수락하는 경우에만 연결할 수 있습니다. 즉, 모든 DLL은 사용자가 연결할 수 있도록 연결을 허용해야 합니다.
RAS 서버에 연결할 때 단일 RAS 연결에서 여러 링크를 사용할 수 있습니다. MprAdminAcceptNewLink 및 MprAdminLinkHangupNotification 함수를 사용하면 관리 DLL이 연결의 개별 링크를 관리할 수 있습니다. RAS는 연결에 대해 새 링크가 설정될 때마다 mprAdminAcceptNewLink 호출합니다. 모든 연결에는 하나 이상의 링크가 포함되므로 RAS는 항상 MprAdminAcceptNewConnection 또는 MprAdminAcceptNewConnection2이 반환된 직후 mprAdminAcceptNewLink을 한 번 호출합니다. 이는 MprAdminAcceptNewConnection 또는 MprAdminAcceptNewConnection2이 연결을 수락한 경우에 해당합니다. RAS는 연결에 대한 링크가 종료될 때마다 MprAdminLinkHangupNotification을 호출합니다.
RAS는 여러 관리 DLL을 지원하므로 원격 액세스 사용자는 각 DLL에서 MprAdminAcceptNewLink 함수의 구현이 연결을 수락하는 경우에만 연결할 수 있습니다. 즉, 링크를 설정하려면 모든 DLL이 링크를 수락해야 합니다.
RAS 서버가 사용자를 인증한 후 MprAdminGetIpAddressForUser 함수를 호출하여 원격 클라이언트의 IP 주소를 가져옵니다. 이 함수는 IP 주소를 전화 접속 사용자에게 매핑하기 위한 대체 체계를 제공합니다. MprAdminGetIpAddressForUser 구현되지 않은 경우 RAS 서버는 원격 사용자를 IP 주소의 고정 풀에서 선택한 IP 주소 또는 DHCP(동적 호스트 구성 프로토콜) 서버에서 선택한 IP 주소와 연결합니다. MprAdminGetIpAddressForUser 함수를 사용하면 DLL이 이 기본 IP 주소를 재정의하고 각 사용자에 대해 특정 IP 주소를 지정할 수 있습니다. MprAdminGetIpAddressForUser 함수는 사용자가 연결을 끊을 때 RAS가 MprAdminReleaseIpAddress 함수를 호출하도록 하는 플래그를 설정할 수 있습니다. 그런 다음 DLL은 MprAdminReleaseIpAddress을 사용하여 사용자-to-IP-주소 매핑을 업데이트할 수 있습니다.
RAS는 여러 관리 DLL을 지원하지만, MprAdminGetIpAddressForUser와 MprAdminReleaseIpAddress 함수를 구현하고 내보내는 첫 번째 DLL에서만 과 을 호출합니다. RAS는 다른 DLL에서 이러한 함수의 구현을 무시합니다. RAS는 이러한 함수에 대한 DLL을 레지스트리나열된 순서대로 확인합니다.
RAS는 관리 DLL에 대한 호출을 직렬화합니다. 지정된 RAS 클라이언트에 대한 DLL의 함수 중 하나에 대한 호출은 다른 RAS 클라이언트에 대해 해당 함수에 대한 호출을 선점하지 않습니다. RAS는 초기 호출이 완료될 때까지 다른 클라이언트에 대한 함수를 호출하지 않습니다. 또한 serialization은 특정 함수 그룹으로 확장됩니다. IP 주소 함수는 그룹으로 직렬화됩니다. MprAdminGetIpAddressForUser 또는 MprAdminReleaseIpAddress 호출은 초기 호출이 반환될 때까지 두 함수에 대한 호출을 차단합니다. MprAdminAcceptNewConnection 및 MprAdminConnectionHangupNotification 그룹으로 직렬화됩니다.
RAS는 한 프로세스에서 IP 주소를 할당하는 함수를 실행합니다. 연결 및 연결 끊기 알림에 대한 함수는 다른 프로세스에서 실행됩니다. 따라서 DLL은 이러한 두 함수 집합 간의 공유 데이터에 의존하지 않습니다.
콜아웃 함수에서 RAS 관리 함수 또는 RAS 사용자 관리 함수를 호출하지 마세요. 이 함수들은 호출 부 함수 내부에서 호출될 경우 반환되지 않습니다.
RAS 서버는 RAS 관리 DLL을 로드하려고 하거나 DLL의 함수 중 하나를 호출할 때 오류가 발생하는 경우 시스템 이벤트 로그에 오류를 기록합니다. 예를 들어 DLL이 내보낸 함수의 잘못된 이름을 지정했거나 DEF 파일에 함수 이름을 포함하지 않은 경우 이러한 문제가 발생할 수 있습니다. 이벤트 로그의 항목은 실패 이유를 나타냅니다.
Windows 2000/NT: 여러 관리 DLL은 지원되지 않습니다.