次の方法で共有


RasDialA 関数 (ras.h)

RasDial 関数は、RAS クライアントと RAS サーバー間の RAS 接続を確立します。 接続データには、コールバックとユーザー認証情報が含まれます。

構文

DWORD RasDialA(
  [in]  LPRASDIALEXTENSIONS unnamedParam1,
  [in]  LPCSTR              unnamedParam2,
  [in]  LPRASDIALPARAMSA    unnamedParam3,
  [in]  DWORD               unnamedParam4,
  [in]  LPVOID              unnamedParam5,
  [out] LPHRASCONN          unnamedParam6
);

パラメーター

[in] unnamedParam1

有効にする一連の RasDial 拡張機能を指定する RASDIALEXTENSIONS 構造体へのポインター。 これらの機能を有効にする必要がない場合は、このパラメーターを NULL を に設定します。

[in] unnamedParam2

電話帳 (PBK) ファイルの完全なパスとファイル名を指定する null で終わる文字列へのポインター。 このパラメーターが NULL場合、関数は現在の既定の電話帳ファイルを使用します。 既定の電話帳ファイルは、ダイヤルアップ ネットワーク] ダイアログ ボックスの [ユーザー設定 プロパティ シートでユーザーが選択したものです。

[in] unnamedParam3

RAS 接続の呼び出しパラメーターを指定する RASDIALPARAMS 構造体へのポインター。 RasGetEntryDialParams 関数 使用して、特定の電話帳エントリのこの構造体のコピーを取得します。

呼び出し元は、RASDIALPARAMS 構造体の dwSize メンバーを sizeof(RASDIALPARAMS) に設定して、渡される構造体のバージョンを識別する必要があります。

RASDIALPARAMS 構造体の szPhoneNumber メンバーが空の文字列である場合、RasDial は、電話帳エントリに格納されている電話番号を使用します。

[in] unnamedParam4

lpvNotifier パラメーターの性質を指定します。 lpvNotifier が NULL場合、dwNotifierType は無視されます。 lpvNotifier が NULLされていない場合は、dwNotifierType を次のいずれかの値に設定します。

価値 意味
0
lpvNotifier パラメーターは、RasDialFunc コールバック関数を指します。
1
lpvNotifier パラメーターは、RasDialFunc1 コールバック関数を指します。
2
lpvNotifier パラメーターは、RasDialFunc2 コールバック関数を指します。

[in] unnamedParam5

RasDialFunc、RasDialFunc1、または RasDialFunc2 コールバック関数を して、RasDial イベント通知 受信するウィンドウ ハンドルまたは を指定します。 dwNotifierType パラメーターは、lpvNotifierの性質 指定します。 詳細については、前述の説明を参照してください。

このパラメーターが NULLでない場合は、RasDial 、ウィンドウにメッセージを送信するか、RasDial イベントごとにコールバック関数 呼び出します。 さらに、RasDial 呼び出しは非同期的に動作します。RasDial は、接続が確立される直前に戻り、ウィンドウまたはコールバック関数を介してその進行状況を伝達します。

lpvNotifier が NULL場合、RasDial 呼び出しは同期的に動作します。RasDial は、接続試行が正常に完了するか失敗するまで戻りません。

lpvNotifier が NULLされていない場合、ウィンドウまたはコールバック関数への通知は、RasDial最初の呼び出しの後にいつでも発生する可能性があります。 通知は、次のいずれかのイベントが発生すると終了します。

  • 接続が確立されます。 つまり、RAS 接続状態はRASCS_Connected。
  • 接続に失敗します。 つまり、dwError は 0 以外です。
  • 接続 RasHangUp が呼び出されます。
コールバック通知は、RasDialへの最初の呼び出し中にキャプチャされたスレッド コンテキストで行われます。

[out] unnamedParam6

HRASCONN型の変数へのポインター。 RasDialを呼び出す前に、HRASCONN 変数を NULL 設定します。 RasDial 成功すると、RAS 接続へのハンドルが *lphRasConnに格納されます。

戻り値

関数が成功した場合、戻り値は ERROR_SUCCESS され、LphRasConnによって指される変数 RAS 接続へのハンドルが返されます。

関数が失敗した場合、戻り値は Routing と Remote Access Error Codes または Winerror.h から取得されます。

備考

直ちに戻った後に発生するエラーは、RasGetConnectStatusによって検出できます。 データは、アプリケーションが RasHangUp 呼び出して接続を切断するまで使用できます。

NULL 接続ハンドルが *lphRasConnに格納されるたびに、アプリケーションは最終的に rasHangUp を呼び出す必要があります。 これは、RasDial が 0 以外の (エラー) 値を返す場合でも適用されます。

アプリケーションは、RasDial notifier コールバック関数から RasHangUp を安全に呼び出すことができます。 ただし、これが行われると、ルーチンが戻るまでハングアップは発生しません。

lpRasDialExtensions 指す構造体で RDEOPT_PausedStatesが有効になっている場合、RasDial 関数は、RASCS_PAUSED ビットが 1 に設定されている状態になると常に一時停止します。 このような一時停止状態から RasDial 再起動するには、RasDial 再度呼び出し、元の RasDial 呼び出しから返された接続ハンドル *lphRasConnで渡します。 元の RasDial 呼び出しで使用されたのと同じ通知は、一時停止状態から再起動するときに使用する必要があります。

lpvNotifier パラメーターは、進行状況通知メッセージを受信するウィンドウへのハンドルです。 進行状況の通知メッセージで、 wParam は、RasDialFunc および RasDialFunc1rasconnstate パラメーターに相当します。 lParam は、RasDialFunc と RasDialFunc1dwError パラメーター 相当します。

進行状況通知メッセージは、システム登録済みメッセージ コードを使用します。 このメッセージ コードの値は、次のように取得できます。

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

RAS では、参照される接続がサポートされます。 ダイヤル中のエントリが既に接続されている場合、RasDial は SUCCESS 返し、接続が参照されます。 接続を切断するには、接続上の各 RasDial を、RasHangUpで照合する必要があります。

一部の電話帳エントリでは認証に拡張認証プロトコル (EAP) が必要であるため、呼び出し元は RasDialを呼び出す前 RasGetEapUserIdentity 呼び出す必要があります。 RasGetEapUserIdentity ERROR_INVALID_FUNCTION_FOR_ENTRYが返された場合、電話帳エントリには EAP は必要ありません。 ただし、GetEapUserIdentity がNO_ERRORを返す場合、呼び出し元は、RasGetEapUserIdentity の EAP ID 情報 RASDIALEXTENSIONSRasEapInfo メンバーにコピーし、RASDIALPARAMS の szUserName メンバーする必要があります。 詳細については、RasGetEapUserIdentityを参照してください。 電話帳エントリに EAP が必要な場合、エントリの RASENTRY 構造体の メンバーには、RASEO_RequireEAP フラグが含まれます。

RasDial RASCS_CallbackSetByCaller 状態に入る必要があることを指定するには、RasDialの最初の呼び出しで、lpRasDialParams-szCallbackNumber を "*" 設定します。 この状態で通知ハンドラーが呼び出されたら、コールバック番号をユーザーが指定した数値に設定します。

手記

ras.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして RasDial を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー ras.h
ライブラリ Rasapi32.lib
DLL Rasapi32.dll

関連項目

ダイヤル可能なアドレス を する

RASDIALEXTENSIONS

RASDIALPARAMS の

RasDialDlg

RasDialFunc

RasDialFunc1

RasDialFunc2

RasGetConnectStatus

RasHangUp

リモート アクセス サービス (RAS) の概要

リモート アクセス サービス関数 の

仮想プライベート ネットワーク接続 の

WM_RASDIALEVENT