다음을 통해 공유


RAS 관리 DLL 정보

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은 다음 함수를 모두 구현하고 내보내야 합니다.

MprAdminAcceptNewLink

MprAdminInitializeDll

MprAdminLinkHangupNotification

MprAdminTerminateDll

또한 RAS 관리 DLL은 중 하나를 구현하고 내보내야 합니다.

MprAdminAcceptNewConnection

MprAdminConnectionHangupNotification

또는

MprAdminAcceptNewConnection2

MprAdminConnectionHangupNotification2

필요한 모든 함수가 구현되지 않으면 RAS가 시작되지 않습니다.

Windows 2000 Server: 관리 DLL은 MprAdminGetIpAddressForUserMprAdminReleaseIpAddress 함수를 구현해야 합니다. DLL이 이러한 함수 중 하나를 구현하는 경우 다른 함수도 구현해야 합니다.

RAS는 라우팅 및 원격 액세스 서비스가 처음 시작될 때 MprAdminInitializeDll 함수를 호출합니다. MprAdminInitializeDll 함수는 관리 DLL이 필요한 초기화를 수행할 수 있는 기회를 제공합니다. 마찬가지로 RAS는 라우팅 및 원격 액세스 서비스가 종료되면 MprAdminTerminateDll 서비스를 호출합니다. 이 함수를 사용하면 관리 DLL이 종료하기 전에 필요한 정리를 수행할 수 있습니다.

MprAdminAcceptNewConnectionMprAdminConnectionHangupNotification 함수를 사용하면 DLL이 서버에 대한 사용자 연결을 감사할 수 있습니다. RAS 서버는 사용자가 연결을 시도할 때마다 MprAdminAcceptNewConnection 함수를 호출합니다. 이 함수를 사용하면 사용자가 연결되지 않도록 할 수 있습니다. MprAdminAcceptNewConnection 함수는 청구 또는 감사에 대한 로그 항목을 생성할 수도 있습니다. 사용자가 연결을 끊으면 RAS 서버는 MprAdminConnectionHangupNotification 함수를 호출합니다. 이 함수는 사용자가 연결이 끊긴 시간을 기록할 수 있습니다.

MprAdminAcceptNewConnection2MprAdminConnectionHangupNotification2 함수는 MprAdminAcceptNewConnectionMprAdminConnectionHangupNotification과 유사합니다. 그러나 RAS가 MprAdminAcceptNewConnection2MprAdminConnectionHangupNotification2 함수를 호출하면 RAS는 RAS_CONNECTION_2 형식의 추가 매개 변수를 전달합니다.

RAS는 여러 관리 DLL을 지원합니다. 원격 액세스 사용자는 각 DLL에서 MprAdminAcceptNewConnection 또는 MprAdminAcceptNewConnection2 함수의 구현이 연결을 수락하는 경우에만 연결할 수 있습니다. 즉, 모든 DLL은 사용자가 연결할 수 있도록 연결을 허용해야 합니다.

RAS 서버에 연결할 때 단일 RAS 연결에서 여러 링크를 사용할 수 있습니다. MprAdminAcceptNewLinkMprAdminLinkHangupNotification 함수를 사용하면 관리 DLL이 연결의 개별 링크를 관리할 수 있습니다. RAS는 연결에 대한 새 링크가 설정될 때마다 MprAdminAcceptNewLink 를 호출합니다. 모든 연결에는 하나 이상의 링크가 포함되므로 RAS는 MprAdminAcceptNewConnection 또는 MprAdminAcceptNewConnection2가 반환된 직후 MprAdminAcceptNewLink를 항상 한 번 호출합니다. 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 를 사용하여 사용자-IP 주소 매핑을 업데이트할 수 있습니다.

RAS는 여러 관리 DLL을 지원하지만 이를 구현하고 내보내는 첫 번째 DLL에서만 MprAdminGetIpAddressForUserMprAdminReleaseIpAddress 함수를 호출합니다. RAS는 다른 DLL에서 이러한 함수의 구현을 무시합니다. RAS는 이러한 함수에 대한 DLL을 레지스트리에 나열된 순서대로 확인 합니다.

RAS는 관리 DLL에 대한 호출을 직렬화합니다. 지정된 RAS 클라이언트에 대한 DLL 함수 중 하나에 대한 호출은 다른 RAS 클라이언트에 대해 해당 함수에 대한 호출을 선점하지 않습니다. RAS는 초기 호출이 완료될 때까지 다른 클라이언트에 대한 함수를 호출하지 않습니다. 또한 serialization은 특정 함수 그룹으로 확장됩니다. IP 주소 함수는 그룹으로 직렬화됩니다. MprAdminGetIpAddressForUser 또는 MprAdminReleaseIpAddress 에 대한 호출은 초기 호출이 반환될 때까지 두 함수에 대한 호출을 차단합니다. MprAdminAcceptNewConnectionMprAdminConnectionHangupNotification 도 그룹으로 직렬화됩니다.

RAS는 한 프로세스에서 IP 주소를 할당하는 함수를 실행합니다. 연결 및 연결 끊기 알림에 대한 함수는 다른 프로세스에서 실행됩니다. 따라서 DLL은 이러한 두 함수 집합 간의 공유 데이터에 의존하지 않습니다.

설명선 함수 내에서 RAS 관리 함수 또는 RAS 사용자 관리 함수 를 호출하지 마세요. 이러한 함수에 대한 호출은 설명선 함수 내에서 호출될 때 반환되지 않습니다.

RAS 서버는 RAS 관리 DLL을 로드하려고 하거나 DLL의 함수 중 하나를 호출할 때 오류가 발생하는 경우 시스템 이벤트 로그에 오류를 기록합니다. 예를 들어 DLL이 내보낸 함수의 잘못된 이름을 지정했거나 DEF 파일에 함수 이름을 포함하지 않은 경우 이러한 문제가 발생할 수 있습니다. 이벤트 로그의 항목은 실패 이유를 나타냅니다.

Windows 2000/NT: 여러 관리 DLL은 지원되지 않습니다.