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 パラメーターの性質を指定します。 lpvNotifierNULL の場合、dwNotifierType は無視されます。 lpvNotifierNULL でない場合は、dwNotifierType を次のいずれかの値に設定します。

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

[in] unnamedParam5

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

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

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

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

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

[out] unnamedParam6

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

戻り値

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

関数が失敗した場合、戻り値は 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 をもう一度呼び出し、*lphRasConn の元の RasDial 呼び出しから返された接続ハンドルを渡します。 一時停止状態から再起動する場合は、元の RasDial 呼び出しで使用されるのと同じ通知を使用する必要があります。

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

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

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

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

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

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

注意

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

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ras.h
Library Rasapi32.lib
[DLL] Rasapi32.dll

関連項目

ダイヤル可能なアドレス

RASDIALEXTENSIONS

RASDIALPARAMS

RasDialDlg

RasDialFunc

RasDialFunc1

RasDialFunc2

RasGetConnectStatus

RasHangUp

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

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

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

WM_RASDIALEVENT