Freigeben über


RasDialW-Funktion (ras.h)

Die RasDial- Funktion stellt eine RAS-Verbindung zwischen einem RAS-Client und einem RAS-Server her. Die Verbindungsdaten umfassen Rückruf- und Benutzerauthentifizierungsinformationen.

Syntax

DWORD RasDialW(
  [in]  LPRASDIALEXTENSIONS unnamedParam1,
  [in]  LPCWSTR             unnamedParam2,
  [in]  LPRASDIALPARAMSW    unnamedParam3,
  [in]  DWORD               unnamedParam4,
  [in]  LPVOID              unnamedParam5,
  [out] LPHRASCONN          unnamedParam6
);

Parameter

[in] unnamedParam1

Zeiger auf eine RASDIALEXTENSIONS- Struktur, die einen Satz von RasDial- erweiterten Features angibt, die aktiviert werden sollen. Legen Sie diesen Parameter auf NULL- fest, wenn diese Features nicht aktiviert werden müssen.

[in] unnamedParam2

Zeigen Sie auf eine mit Null beendete Zeichenfolge, die den vollständigen Pfad und Dateinamen einer PbK-Datei (Phone-Book) angibt. Wenn dieser Parameter NULL-ist, verwendet die Funktion die aktuelle Standarddatei des Telefonbuchs. Die Standardmäßige Telefonbuchdatei ist die vom Benutzer im Eigenschaftenblatt Benutzereinstellungen Eigenschaftenblatt des Dialogfelds DFÜ-Netzwerk ausgewählt.

[in] unnamedParam3

Zeiger auf eine RASDIALPARAMS Struktur, die Aufrufparameter für die RAS-Verbindung angibt. Verwenden Sie die RasGetEntryDialParams Funktion, um eine Kopie dieser Struktur für einen bestimmten Telefonbucheintrag abzurufen.

Der Aufrufer muss die RASDIALPARAMS Struktur dwSize Member auf Sizeof(RASDIALPARAMS) festlegen, um die Version der übergebenen Struktur zu identifizieren.

Wenn das szPhoneNumber Mitglied der RASDIALPARAMS Struktur eine leere Zeichenfolge ist, verwendet RasDial die im Eintrag für das Telefonbuch gespeicherte Telefonnummer.

[in] unnamedParam4

Gibt die Art des lpvNotifier--Parameters an. Wenn lpvNotifierNULL-ist, wird dwNotifierType ignoriert. Wenn lpvNotifier nicht NULL-ist, legen Sie dwNotifierType auf einen der folgenden Werte fest.

Wert Bedeutung
0
Der lpvNotifier Parameter verweist auf eine RasDialFunc Rückruffunktion.
1
Der lpvNotifier Parameter verweist auf eine RasDialFunc1 Rückruffunktion.
2
Der lpvNotifier Parameter verweist auf eine RasDialFunc2 Rückruffunktion.

[in] unnamedParam5

Gibt ein Fensterhandle oder eine RasDialFunc-, RasDialFunc1oder RasDialFunc2 Rückruffunktion an, um RasDial Ereignisbenachrichtigungen zu empfangen. Der parameter dwNotifierType gibt die Art des lpvNotifier-an. Weitere Details finden Sie in der vorstehenden Beschreibung.

Wenn dieser Parameter nicht NULL-ist, sendet RasDial das Fenster eine Nachricht oder ruft die Rückruffunktion für jedes RasDial-Ereignis auf. Darüber hinaus wird der RasDial-Aufruf asynchron ausgeführt: RasDial- gibt unmittelbar zurück, bevor die Verbindung hergestellt wird, und kommuniziert den Fortschritt über die Fenster- oder Rückruffunktion.

Wenn lpvNotifier-NULL-ist, wird der RasDial-aufruf synchron ausgeführt: RasDial- wird erst zurückgegeben, wenn der Verbindungsversuch erfolgreich abgeschlossen wurde oder fehlgeschlagen ist.

Wenn lpvNotifier nicht NULL-ist, können Benachrichtigungen an das Fenster oder die Rückruffunktion jederzeit nach dem ersten Aufruf an RasDialauftreten. Benachrichtigungen enden, wenn eines der folgenden Ereignisse auftritt:

  • Die Verbindung wird hergestellt. Mit anderen Worten, der RAS-Verbindungsstatus ist RASCS_Connected.
  • Die Verbindung schlägt fehl. Mit anderen Worten, dwError ist nonzero.
  • RasHangUp- wird für die Verbindung aufgerufen.
Die Rückrufbenachrichtigungen werden im Kontext eines Threads ausgeführt, der während des anfänglichen Aufrufs von RasDial-erfasst wird.

[out] unnamedParam6

Zeiger auf eine Variable vom Typ HRASCONN. Legen Sie die variable HRASCONN auf NULL- fest, bevor Sie RasDial-aufrufen. Wenn RasDial erfolgreich ist, speichert es einen Handle für die RAS-Verbindung in *lphRasConn.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert ERROR_SUCCESS und ein Handle zur RAS-Verbindung in der Variablen zurückgegeben, auf die durch lphRasConnverwiesen wird.

Wenn die Funktion fehlschlägt, stammt der Rückgabewert aus Routing- und Remotezugriffsfehlercodes oder Winerror.h.

Bemerkungen

Fehler, die nach der sofortigen Rückgabe auftreten, können durch RasGetConnectStatus-erkannt werden. Daten sind verfügbar, bis eine Anwendung RasHangUp- aufruft, um die Verbindung aufzulegen.

Eine Anwendung muss schließlich RasHangUp aufrufen, wenn ein nichtNULL- Verbindungshandle in *lphRasConngespeichert wird. Dies gilt auch, wenn RasDial einen Wert ungleich Null (Fehler) zurückgibt.

Eine Anwendung kann RasHangUp- von einer RasDial- Notifierrückruffunktion sicher aufrufen. Wenn dies geschieht, tritt der Aufhänger jedoch erst auf, wenn die Routine zurückgegeben wird.

Wenn die struktur, auf die durch lpRasDialExtensions verweist, RDEOPT_PausedStatesaktiviert, wird die RasDial--Funktion angehalten, wenn sie in einen Zustand wechselt, in dem das RASCS_PAUSED Bit auf eins festgelegt ist. Um RasDial- aus einem solchen angehaltenen Zustand neu zu starten, rufen Sie RasDial- erneut auf, und übergeben Sie den verbindungsziehpunkt, der vom ursprünglichen RasDial- Anruf in *lphRasConnzurückgegeben wurde. Der gleiche Notifizierer, der im ursprünglichen RasDial- Aufruf verwendet wird, muss beim Neustart aus einem angehaltenen Zustand verwendet werden.

Der lpvNotifier Parameter ist ein Handle für ein Fenster zum Empfangen von Statusbenachrichtigungen. In einer Statusbenachrichtigung, wParam entspricht dem rasconnstate Parameter RasDialFunc und RasDialFunc1und lParam- entspricht dem parameter dwError von RasDialFunc und RasDialFunc1.

Die Statusbenachrichtigung verwendet einen vom System registrierten Nachrichtencode. Sie können den Wert dieses Nachrichtencodes wie folgt abrufen:

UINT unMsg = RegisterWindowMessageA( RASDIALEVENT );
if (unMsg == 0)
    unMsg = WM_RASDIALEVENT;

RAS unterstützt referenzierte Verbindungen. Wenn der gewählte Eintrag bereits verbunden ist, gibt RasDialSUCCESS zurück, und auf die Verbindung wird verwiesen. Um die Verbindung zu trennen, sollte jede RasDial- für die Verbindung mit einem RasHangUp-abgeglichen werden.

Da für einige Telefonbucheinträge das Extensible Authentication Protocol (EAP) für die Authentifizierung erforderlich ist, sollte der Anrufer RasGetEapUserIdentity- aufrufen, bevor RasDial-aufgerufen wird. Wenn RasGetEapUserIdentityERROR_INVALID_FUNCTION_FOR_ENTRYzurückgibt, erfordert der Telefonbucheintrag keine EAP. Wenn RasGetEapUserIdentity jedoch NO_ERROR zurückgibt, sollte der Aufrufer die EAP-Identitätsinformationen aus RasGetEapUserIdentity- in das RasEapInfo Mitglied von RASDIALEXTENSIONSkopieren und das szUserName Mitglied von RASDIALPARAMS. Weitere Informationen finden Sie unter RasGetEapUserIdentity-. Wenn der Eintrag für das Telefonbuch EAP benötigt, enthält das dwfOptions Mitglied der RASENTRY Struktur für den Eintrag das RASEO_RequireEAP Flag.

Um anzugeben, dass RasDial einen RASCS_CallbackSetByCaller Zustand eingeben soll, legen Sie lpRasDialParams->szCallbackNumber auf "*" für den ersten Aufruf von RasDialfest. Wenn der Benachrichtigungshandler mit diesem Zustand aufgerufen wird, legen Sie die Rückrufnummer auf eine vom Benutzer angegebene Nummer fest.

Anmerkung

Der ras.h-Header definiert RasDial als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- ras.h
Library Rasapi32.lib
DLL- Rasapi32.dll

Siehe auch

RASDIALEXTENSIONS

RASDIALPARAMS

RasDialDlg

RasDialFunc

RasDialFunc1

RasDialFunc2

RasGetConnectStatus-

RasHangUp-

übersicht über Ras(Remote Access Service)

Remotezugriffsdienstfunktionen

virtuelle private Netzwerkverbindungen

WM_RASDIALEVENT