WNetAddConnection3A 関数 (winnetwk.h)
WNetAddConnection3 関数は、ネットワーク リソースに接続します。 この関数は、ローカル デバイスをネットワーク リソースにリダイレクトできます。
WNetAddConnection3 関数は、WNetAddConnection2 関数に似ています。 主な違いは、WNetAddConnection3
構文
DWORD WNetAddConnection3A(
[in] HWND hwndOwner,
[in] LPNETRESOURCEA lpNetResource,
[in] LPCSTR lpPassword,
[in] LPCSTR lpUserName,
[in] DWORD dwFlags
);
パラメーター
[in] hwndOwner
ネットワーク リソースのプロバイダーがダイアログ ボックスの所有者ウィンドウとして使用できるウィンドウへのハンドル。 dwFlags パラメーターにCONNECT_INTERACTIVE値を設定する場合は、このパラメーターを使用します。
[in] lpNetResource
ネットワーク リソース、ローカル デバイス、ネットワーク リソース プロバイダーに関する情報など、提案された接続の詳細を指定する NETRESOURCE 構造体へのポインター。
NETRESOURCE 構造体の次のメンバーを指定する必要があります。
WNetAddConnection3 関数は、NETRESOURCE 構造体の他のメンバーを無視します。
[in] lpPassword
ネットワーク接続の確立に使用するパスワードを指定する、null終了文字列へのポインター。
lpPassword
lpPassword が空の文字列を指している場合、関数はパスワードを使用しません。
無効なパスワードが原因で接続に失敗し、dwFlags パラメーターにCONNECT_INTERACTIVE値が設定されている場合、この関数はユーザーにパスワードの入力を求めるダイアログ ボックスを表示します。
[in] lpUserName
接続を確立するためのユーザー名を指定する null終了文字列へのポインター。
lpUserName
lpUserName パラメーターは、ユーザーに既定のユーザー名またはアカウント以外のユーザー名またはアカウントが割り当てられているネットワーク リソースに接続する場合に指定します。
ユーザー名の文字列は、セキュリティ コンテキストを表します。 ネットワーク プロバイダーに固有の場合があります。
[in] dwFlags
接続オプションのセット。 現在、次の値が定義されています。
価値 | 意味 |
---|---|
|
このフラグが設定されている場合、オペレーティング システムは認証のためにユーザーと対話する可能性があります。 |
|
このフラグは、ユーザーに代替手段を提供する機会を提供せずに、ユーザー名またはパスワードに既定の設定を使用しないようにシステムに指示します。 CONNECT_INTERACTIVEも設定されていない限り、このフラグは無視されます。 |
|
このフラグは、接続時にローカル デバイスのリダイレクトを強制します。
NETRESOURCE の lpLocalName メンバーがリダイレクトするローカル デバイスを指定した場合、オペレーティング システムは引き続き指定されたデバイスのリダイレクトを試行するため、このフラグは無効です。 オペレーティング システムがローカル デバイスを自動的に選択する場合、dwType メンバーはRESOURCETYPE_ANYと等しくなければなりません。 このフラグが設定されていない場合、ローカル デバイスは、ネットワークでローカル デバイスをリダイレクトする必要がある場合にのみ、リダイレクト用に自動的に選択されます。 Windows Server 2003 および Windows XP: システムがネットワーク ドライブ文字を自動的に割り当てると、文字は Z: で始まり、Y: で始まり、C: で終わると割り当てられます。 これにより、ログオンごとのドライブ文字 (ネットワーク ドライブ文字など) とグローバル ドライブ文字 (ディスク ドライブなど) の競合が軽減されます。 以前のバージョンの Windows では、C: で始まり、Z: で終わるドライブ文字が割り当てされていることに注意してください。 |
|
ネットワーク リソース接続を記憶する必要があります。
このビット フラグが設定されている場合、オペレーティング システムはユーザーのログオン時に自動的に接続の復元を試みます。 オペレーティング システムは、ローカル デバイスをリダイレクトする成功した接続のみを記憶します。 失敗した接続またはデバイスレス接続は記憶されません。 ( このビット フラグがオフの場合、オペレーティング システムはログオン時に接続を自動的に復元しません。 |
|
このフラグが設定されている場合、オペレーティング システムは、グラフィカル ユーザー インターフェイス (GUI) ではなくコマンド ラインを使用してユーザーに認証を求めます。 CONNECT_INTERACTIVEも設定されていない限り、このフラグは無視されます。
Windows 2000/NT および Windows Me/98/95: この値はサポートされていません。 |
|
このフラグが設定されていて、オペレーティング システムが資格情報の入力を求める場合は、資格情報マネージャーによって資格情報を保存する必要があります。 呼び出し元のログオン セッションで資格情報マネージャーが無効になっている場合、またはネットワーク プロバイダーが資格情報の保存をサポートしていない場合、このフラグは無視されます。 CONNECT_COMMANDLINE フラグを設定しない限り、このフラグも無視されます。
Windows 2000/NT および Windows Me/98/95: この値はサポートされていません。 |
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が失敗した場合、戻り値は システム エラー コード(次のいずれかの値など) です。
リターン コード | 形容 |
---|---|
|
呼び出し元は、ネットワーク リソースにアクセスできません。 |
|
lpLocalName メンバーによって指定されたローカル デバイスは、既にネットワーク リソースに接続されています。 |
|
ローカル デバイスの種類とネットワーク リソースの種類が一致しません。 |
|
lpLocalName |
|
lpRemoteName メンバーによって指定された値は、リソース名が無効であるか、名前付きリソースを見つけられないため、どのネットワーク リソース プロバイダーにも受け入れられません。 |
|
ユーザー プロファイルの形式が正しくありません。 |
|
lpProvider メンバーによって指定された値がプロバイダーと一致しません。 |
|
ルーターまたはプロバイダーがビジー状態で、初期化中である可能性があります。 呼び出し元は再試行する必要があります。 |
|
接続の試行は、いずれかのネットワーク リソース プロバイダーのダイアログ ボックスまたは呼び出されたリソースによって、ユーザーによって取り消されました。 |
|
システムは、永続的な接続を処理するためにユーザー プロファイルを開くことができません。 |
|
lpLocalName メンバーによって指定されたデバイスのエントリは、既にユーザー プロファイルにあります。 |
|
ネットワーク固有のエラーが発生しました。 WNetGetLastError 関数を呼び出して、エラーの説明を取得します。 |
|
指定したパスワードが無効で、CONNECT_INTERACTIVE フラグが設定されていません。 |
|
ネットワーク コンポーネントが開始されていないか、指定した名前を使用できないため、操作を実行できません。 |
|
ネットワークは使用できません。 |
備考
WNetUseConnection 関数は、WNetAddConnection3 関数に似ています。 主な違いは、WNetUseConnection
Windows Server 2003 および Windows XP では、MS-DOS デバイスは AuthenticationID (MS-DOS a
ログオン セッションに関連付けられたローカル一意識別子(LUID)。 これは、いずれかの WNet 関数を呼び出して 1 人のユーザー ログオンでネットワーク ドライブ文字を作成するが、別のユーザー ログオンで既存のネットワーク ドライブ文字を照会するアプリケーションに影響を与える可能性があります。 このような状況の例としては、たとえば、CreateProcessAsUser 関数を呼び出すことによって、ログオン セッション内にユーザーの 2 番目のログオンが作成され、2 番目のログオンで、GetLogicalDrives 関数を呼び出すアプリケーションが実行される場合があります。
GetLogicalDrives 関数の呼び出しは、最初のログオン時に WNet 関数呼び出しによって作成されたネットワーク ドライブ文字を返しません。 前の例では、最初のログオン セッションがまだ存在し、ターミナル サービス セッションを含む任意のログオン セッションにこの例を適用できることに注意してください。 詳細については、「MS-DOS デバイス名の定義
Windows Server 2003 および Windows XP では、LocalSystem として実行されるサービスが WNetAddConnection3 関数を呼び出すと、マップされたドライブはすべてのユーザー ログオン セッションに表示されます。
Microsoft ネットワーク プロバイダーの場合、lpNetResource パラメーターが指す NETRESOURCE 構造体の lpRemoteName メンバーには、ドット 10 進表記の IPv4 アドレスを含めることができます。 共有の例を次に示します。
\192.168.1.1\share
Windows Vista 以降の Microsoft ネットワーク プロバイダーの場合、lpNetResource パラメーターが指す NETRESOURCE 構造体の lpRemoteName メンバーには、IPv6 アドレスを含めることができます。 ただし、IPv6 アドレスが正しく解析されるように、IPv6 リテラル形式を使用する必要があります。 IPv6 リテラル アドレスの形式は次のとおりです。
ipv6-address と ':' 文字が '-' 文字に置き換えられ、その後に ".ipv6-literal.net" 文字列が続きます。
たとえば、次の IPv6 アドレスの場合です。
2001:4898:9:3:c069:aa97:fe76:2449
共有の例を次に示します。
\2001-4898-9-3-c069-aa97-fe76-2449.ipv6-literal.net\share
他のネットワーク プロバイダーは、IPv4 または IPv6 アドレスを含む lpNetResource パラメーターが指す NETRESOURCE 構造体の lpRemoteName メンバーをサポートする場合がありますが、これは特定のネットワーク プロバイダーに対して行われます。
手記
winnetwk.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして WNetAddConnection3 を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winnetwk.h |
ライブラリ | Mpr.lib |
DLL | Mpr.dll |
関連項目
NETRESOURCE の
WNetAddConnection2 の
WNetCancelConnection2 の
WNetGetConnection の
WNetUseConnection の