Informationen zu RAS-Verwaltungs-DLLs

Die RAS-Verwaltungs-DLL exportiert Funktionen, die der RAS-Server aufruft, wenn ein Benutzer versucht, eine Verbindung herzustellen oder die Verbindung zu trennen. Hier sind einige der möglichen Verwendungsmöglichkeiten für eine RAS-Verwaltungs-DLL:

  • Entscheiden Sie, ob ein Benutzer eine Verbindung mit dem Server herstellen soll. Die Verwaltungs-DLL kann zusätzlich zur standardmäßigen RAS-Benutzerauthentifizierung eine Sicherheitsüberprüfung durchführen.
  • Notiert die Zeit, zu der jeder Benutzer eine Verbindung mit dem Server herstellt und die Verbindung mit dem Server trennt. Dies kann für Abrechnungs- oder Überwachungszwecke nützlich sein.
  • Weisen Sie jedem Benutzer eine IP-Adresse zu. Dies ist für die Sicherheit nützlich, da dieses Feature verwendet wird, um die Verbindung eines Benutzers einem bestimmten Computer zuzuordnen.

Der Speicherort der RAS-Verwaltungs-DLL wird in der Registrierung angegeben. Weitere Informationen finden Sie unter EINRICHTEN der RAS-Verwaltungs-DLL-Registrierung.

RAS unterstützt mehrere Verwaltungs-DLLs. Die Registrierung unterstützt mehrere DLL-Speicherorte. RAS ruft die Funktionen in den DLLs in der Reihenfolge auf, in der die DLLs in der Registrierung aufgeführt sind. Weitere Informationen finden Sie unter EINRICHTEN der RAS-Verwaltungs-DLL-Registrierung.

Windows 2000 Server: RAS unterstützt nicht mehrere DLLs.

Eine RAS-Verwaltungs-DLL muss alle folgenden Funktionen implementieren und exportieren:

MprAdminAcceptNewLink

MprAdminInitializeDll

MprAdminLinkHangupNotification

MprAdminTerminateDll

Darüber hinaus muss die RAS-Verwaltungs-DLL folgendes implementieren und exportieren:

MprAdminAcceptNewConnection und

MprAdminConnectionHangupNotification

oder

MprAdminAcceptNewConnection2 und

MprAdminConnectionHangupNotification2

Wenn nicht alle erforderlichen Funktionen implementiert sind, kann RAS nicht gestartet werden.

Windows 2000 Server: Eine Verwaltungs-DLL muss die Funktionen MprAdminGetIpAddressForUser und MprAdminReleaseIpAddress implementieren. Wenn die DLL eine dieser Funktionen implementiert, muss sie auch die andere implementieren.

RAS ruft die MprAdminInitializeDll-Funktion auf, wenn der Routing- und RAS-Dienst zum ersten Mal gestartet wird. Die MprAdminInitializeDll-Funktion bietet der Verwaltungs-DLL die Möglichkeit, alle erforderlichen Initialisierungen auszuführen. Auf ähnliche Weise ruft RAS den MprAdminTerminateDll-Dienst auf, wenn der Routing- und RAS-Dienst heruntergefahren wird. Mit dieser Funktion kann die Verwaltungs-DLL alle erforderlichen Bereinigungen durchführen, bevor sie beendet wird.

Die Funktionen MprAdminAcceptNewConnection und MprAdminConnectionHangupNotification ermöglichen es der DLL, Benutzerverbindungen mit dem Server zu überwachen. Ein RAS-Server ruft die MprAdminAcceptNewConnection-Funktion auf, wenn ein Benutzer versucht, eine Verbindung herzustellen. Diese Funktion ermöglicht es, zu verhindern, dass der Benutzer eine Verbindung herstellt. Die MprAdminAcceptNewConnection-Funktion kann auch Protokolleinträge für die Abrechnung oder Überwachung generieren. Wenn der Benutzer die Verbindung trennt, ruft der RAS-Server die Funktion MprAdminConnectionHangupNotification auf, die den Zeitpunkt protokollieren kann, zu dem der Benutzer die Verbindung getrennt hat.

Die Funktionen MprAdminAcceptNewConnection2 und MprAdminConnectionHangupNotification2 ähneln mprAdminAcceptNewConnection und MprAdminConnectionHangupNotification. Wenn RAS jedoch die Funktionen MprAdminAcceptNewConnection2 und MprAdminConnectionHangupNotification2 aufruft, übergibt RAS einen zusätzlichen Parameter vom Typ RAS CONNECTION _ _ 2.

RAS unterstützt mehrere Verwaltungs-DLLs. Der Remotezugriffsbenutzer darf nur dann eine Verbindung herstellen, wenn die Implementierung der MprAdminAcceptNewConnection- oder MprAdminAcceptNewConnection2-Funktion in jeder der DLLs die Verbindung akzeptiert. Anders ausgedrückt: Jede DLL muss die Verbindung akzeptieren, damit der Benutzer eine Verbindung herstellen kann.

Es ist möglich, dass eine einzelne RAS-Verbindung mehrere Links verwendet, wenn eine Verbindung mit einem RAS-Server hergestellt wird. Die Funktionen MprAdminAcceptNewLink und MprAdminLinkHangupNotification ermöglichen es der Verwaltungs-DLL, einzelne Links in einer Verbindung zu verwalten. RAS ruft MprAdminAcceptNewLink auf, wenn ein neuer Link für eine Verbindung hergestellt wird. Da alle Verbindungen mindestens einen Link umfassen, ruft RAS MprAdminAcceptNewLink immer einmal unmittelbar nach der Rückgabe von MprAdminAcceptNewConnection oder MprAdminAcceptNewConnection2 auf, vorausgesetzt, dass MprAdminAcceptNewConnection oder MprAdminAcceptNewConnection2 die Verbindung akzeptiert haben. RAS ruft MprAdminLinkHangupNotification auf, wenn ein Link für eine Verbindung heruntergefahren wird.

Da RAS mehrere Verwaltungs-DLLs unterstützt, kann der Remotezugriffsbenutzer nur dann eine Verbindung herstellen, wenn die Implementierung der MprAdminAcceptNewLink-Funktion in jeder der DLLs die Verbindung akzeptiert. Anders ausgedrückt: Jede DLL muss den Link akzeptieren, damit der Link hergestellt werden kann.

Nachdem der RAS-Server einen Benutzer authentifiziert hat, ruft er die Funktion MprAdminGetIpAddressForUser auf, um eine IP-Adresse für den Remoteclient abzurufen. Diese Funktion stellt ein alternatives Schema zum Zuordnen einer IP-Adresse zu einem Einwählbenutzer bereit. Wenn MprAdminGetIpAddressForUser nicht implementiert ist, ordnet ein RAS-Server dem Remotebenutzer eine IP-Adresse zu, die aus einem statischen Pool von IP-Adressen ausgewählt oder von einem DHCP-Server (Dynamic Host Configuration Protocol) ausgewählt wurde. Mit der MprAdminGetIpAddressForUser-Funktion kann die DLL diese Standard-IP-Adresse überschreiben und eine bestimmte IP-Adresse für jeden Benutzer angeben. Die MprAdminGetIpAddressForUser-Funktion kann ein Flag festlegen, das bewirkt, dass RAS die MprAdminReleaseIpAddress-Funktion aufruft, wenn der Benutzer die Verbindung trennt. Die DLL kann dann MprAdminReleaseIpAddress verwenden, um die Zuordnung zwischen Benutzern und IP-Adressen zu aktualisieren.

RAS unterstützt mehrere Verwaltungs-DLLs, ruft jedoch die Funktionen MprAdminGetIpAddressForUser und MprAdminReleaseIpAddress nur in der ersten DLL auf, die sie implementiert und exportiert. RAS ignoriert Implementierungen dieser Funktionen in den anderen DLLs. RAS überprüft die DLLs für diese Funktionen in der Reihenfolge, in der sie in der Registrierungaufgeführt sind.

RAS serialisiert Aufrufe in die Verwaltungs-DLL. Ein Aufruf einer der DLL-Funktionen für einen bestimmten RAS-Client geht einem Aufruf dieser Funktion für einen anderen RAS-Client nicht voraus. RAS ruft die Funktion für den anderen Client erst auf, wenn der erste Aufruf abgeschlossen ist. Darüber hinaus erstreckt sich die Serialisierung auf bestimmte Gruppen von Funktionen. Die IP-Adressfunktionen werden als Gruppe serialisiert. Ein Aufruf von MprAdminGetIpAddressForUser oder MprAdminReleaseIpAddress blockiert Aufrufe in beiden Funktionen, bis der erste Aufruf zurückgegeben wurde. MprAdminAcceptNewConnection und MprAdminConnectionHangupNotification werden ebenfalls als Gruppe serialisiert.

RAS führt die Funktionen aus, die IP-Adressen in einem Prozess zuweisen. Die Funktionen für Verbindungs- und Trennungsbenachrichtigungen werden in einem anderen Prozess ausgeführt. Folglich ist die DLL nicht von freigegebenen Daten zwischen diesen beiden Funktionssätzen abhängig.

Rufen Sie keine ras-Verwaltungsfunktionen oder RAS-Benutzerverwaltungsfunktionen innerhalb einer Aufruffunktion auf. Aufrufe dieser Funktionen werden nicht zurückgegeben, wenn sie innerhalb einer Aufruffunktion erfolgen.

Der RAS-Server protokolliert einen Fehler im Systemereignisprotokoll, wenn ein Fehler auftritt, wenn versucht wird, eine RAS-Verwaltungs-DLL zu laden, oder wenn eine der Funktionen der DLL aufgerufen wird. Dies kann beispielsweise der Fall sein, wenn die DLL den falschen Namen für eine exportierte Funktion angegeben hat oder wenn sie den Funktionsnamen nicht in die DEF-Datei eingeschlossen hat. Der Eintrag im Ereignisprotokoll gibt die Ursache des Fehlers an.

Windows 2000/NT: Mehrere Verwaltungs-DLLs werden nicht unterstützt.