次の方法で共有


WNetAddConnection3A 関数 (winnetwk.h)

WNetAddConnection3 関数は、ネットワーク リソースに接続します。 この関数は、ローカル デバイスをネットワーク リソースにリダイレクトできます。

WNetAddConnection3 関数は、WNetAddConnection2 関数に似ています。 主な違いは、WNetAddConnection3 には、追加のパラメーター、ネットワーク リソースのプロバイダーがダイアログ ボックスの所有者ウィンドウとして使用できるウィンドウへのハンドルがあるということです。 WNetAddConnection2 関数と WNetAddConnection3 関数は、WNetAddConnection 関数よりも優先されます。

構文

DWORD WNetAddConnection3A(
  [in] HWND           hwndOwner,
  [in] LPNETRESOURCEA lpNetResource,
  [in] LPCSTR         lpPassword,
  [in] LPCSTR         lpUserName,
  [in] DWORD          dwFlags
);

パラメーター

[in] hwndOwner

ネットワーク リソースのプロバイダーがダイアログ ボックスの所有者ウィンドウとして使用できるウィンドウへのハンドル。 dwFlags パラメーターにCONNECT_INTERACTIVE値を設定する場合は、このパラメーターを使用します。

hwndOwner パラメーターは、NULLできます。 その場合、WNetAddConnection3 の呼び出しは、WNetAddConnection2 関数の呼び出しと同じです。

[in] lpNetResource

ネットワーク リソース、ローカル デバイス、ネットワーク リソース プロバイダーに関する情報など、提案された接続の詳細を指定する NETRESOURCE 構造体へのポインター。

NETRESOURCE 構造体の次のメンバーを指定する必要があります。

メンバー 意味
dwType を する
接続先のネットワーク リソースの種類。

lpLocalName メンバーが空でない文字列を指している場合、このメンバーはRESOURCETYPE_DISKまたはRESOURCETYPE_PRINTに等しい場合があります。

lpLocalName NULL場合、または空の文字列を指している場合は、dwType RESOURCETYPE_DISK、RESOURCETYPE_PRINT、またはRESOURCETYPE_ANYと等しい場合があります。

このメンバーは必須ですが、その情報はネットワーク サービス プロバイダーによって無視される場合があります。

lpLocalName を する
リダイレクトするローカル デバイスの名前 ("F:" や "LPT1" など) を指定する、null終了文字列へのポインター。 文字列は、大文字と小文字を区別しない方法で扱われます。

文字列が空の場合、または lpLocalName が NULL場合、関数はローカル デバイスをリダイレクトせずにネットワーク リソースに接続します。

lpRemoteName を する
接続先のネットワーク リソースを指定する null終了文字列へのポインター。 文字列の長さは最大MAX_PATH文字で、ネットワーク プロバイダーの名前付け規則に従う必要があります。
lpProvider を する
接続するネットワーク プロバイダーを指定する null-terminated 文字列へのポインター。

lpProvider が NULL場合、または空の文字列を指している場合、オペレーティング システムは、lpRemoteName メンバーが指す文字列を解析して、適切なプロバイダーの特定を試みます。

このメンバーが NULLされていない場合、オペレーティング システムは、名前付きネットワーク プロバイダーへの接続のみを試行します。

このメンバーは、使用するネットワーク プロバイダーがわかっている場合にのみ設定する必要があります。 それ以外の場合は、オペレーティング システムで、ネットワーク名がマップされるネットワーク プロバイダーを特定します。

 

WNetAddConnection3 関数は、NETRESOURCE 構造体の他のメンバーを無視します。

[in] lpPassword

ネットワーク接続の確立に使用するパスワードを指定する、null終了文字列へのポインター。

lpPassword NULL場合、この関数は、lpUserName パラメーターで指定されたユーザーに関連付けられている現在の既定のパスワードを使用します。

lpPassword が空の文字列を指している場合、関数はパスワードを使用しません。

無効なパスワードが原因で接続に失敗し、dwFlags パラメーターにCONNECT_INTERACTIVE値が設定されている場合、この関数はユーザーにパスワードの入力を求めるダイアログ ボックスを表示します。

Windows Me/98/95: このパラメーターは、NULL または空の文字列 する必要があります。

[in] lpUserName

接続を確立するためのユーザー名を指定する null終了文字列へのポインター。

lpUserName が NULL場合、関数は既定のユーザー名を使用します。 (プロセスのユーザー コンテキストは、既定のユーザー名を提供します)。

lpUserName パラメーターは、ユーザーに既定のユーザー名またはアカウント以外のユーザー名またはアカウントが割り当てられているネットワーク リソースに接続する場合に指定します。

ユーザー名の文字列は、セキュリティ コンテキストを表します。 ネットワーク プロバイダーに固有の場合があります。

Windows Me/98/95: このパラメーターは、NULL または空の文字列 する必要があります。

[in] dwFlags

接続オプションのセット。 現在、次の値が定義されています。

価値 意味
CONNECT_INTERACTIVE
このフラグが設定されている場合、オペレーティング システムは認証のためにユーザーと対話する可能性があります。
CONNECT_PROMPT
このフラグは、ユーザーに代替手段を提供する機会を提供せずに、ユーザー名またはパスワードに既定の設定を使用しないようにシステムに指示します。 CONNECT_INTERACTIVEも設定されていない限り、このフラグは無視されます。
CONNECT_REDIRECT
このフラグは、接続時にローカル デバイスのリダイレクトを強制します。

NETRESOURCElpLocalName メンバーがリダイレクトするローカル デバイスを指定した場合、オペレーティング システムは引き続き指定されたデバイスのリダイレクトを試行するため、このフラグは無効です。 オペレーティング システムがローカル デバイスを自動的に選択する場合、dwType メンバーはRESOURCETYPE_ANYと等しくなければなりません。

このフラグが設定されていない場合、ローカル デバイスは、ネットワークでローカル デバイスをリダイレクトする必要がある場合にのみ、リダイレクト用に自動的に選択されます。

Windows Server 2003 および Windows XP: システムがネットワーク ドライブ文字を自動的に割り当てると、文字は Z: で始まり、Y: で始まり、C: で終わると割り当てられます。 これにより、ログオンごとのドライブ文字 (ネットワーク ドライブ文字など) とグローバル ドライブ文字 (ディスク ドライブなど) の競合が軽減されます。 以前のバージョンの Windows では、C: で始まり、Z: で終わるドライブ文字が割り当てされていることに注意してください。

CONNECT_UPDATE_PROFILE
ネットワーク リソース接続を記憶する必要があります。

このビット フラグが設定されている場合、オペレーティング システムはユーザーのログオン時に自動的に接続の復元を試みます。

オペレーティング システムは、ローカル デバイスをリダイレクトする成功した接続のみを記憶します。 失敗した接続またはデバイスレス接続は記憶されません。 (lpLocalName メンバーが NULL 場合、または空の文字列を指している場合、デバイスレス接続が発生します)。

このビット フラグがオフの場合、オペレーティング システムはログオン時に接続を自動的に復元しません。

CONNECT_COMMANDLINE
このフラグが設定されている場合、オペレーティング システムは、グラフィカル ユーザー インターフェイス (GUI) ではなくコマンド ラインを使用してユーザーに認証を求めます。 CONNECT_INTERACTIVEも設定されていない限り、このフラグは無視されます。

Windows 2000/NT および Windows Me/98/95: この値はサポートされていません。

CONNECT_CMD_SAVECRED
このフラグが設定されていて、オペレーティング システムが資格情報の入力を求める場合は、資格情報マネージャーによって資格情報を保存する必要があります。 呼び出し元のログオン セッションで資格情報マネージャーが無効になっている場合、またはネットワーク プロバイダーが資格情報の保存をサポートしていない場合、このフラグは無視されます。 CONNECT_COMMANDLINE フラグを設定しない限り、このフラグも無視されます。

Windows 2000/NT および Windows Me/98/95: この値はサポートされていません。

戻り値

関数が成功した場合、戻り値はNO_ERROR。

関数が失敗した場合、戻り値は システム エラー コード(次のいずれかの値など) です。

リターン コード 形容
ERROR_ACCESS_DENIED
呼び出し元は、ネットワーク リソースにアクセスできません。
ERROR_ALREADY_ASSIGNED
lpLocalName メンバーによって指定されたローカル デバイスは、既にネットワーク リソースに接続されています。
ERROR_BAD_DEV_TYPE
ローカル デバイスの種類とネットワーク リソースの種類が一致しません。
ERROR_BAD_DEVICE
lpLocalName 指定された値が無効です。
ERROR_BAD_NET_NAME
lpRemoteName メンバーによって指定された値は、リソース名が無効であるか、名前付きリソースを見つけられないため、どのネットワーク リソース プロバイダーにも受け入れられません。
ERROR_BAD_PROFILE
ユーザー プロファイルの形式が正しくありません。
ERROR_BAD_PROVIDER
lpProvider メンバーによって指定された値がプロバイダーと一致しません。
ERROR_BUSY
ルーターまたはプロバイダーがビジー状態で、初期化中である可能性があります。 呼び出し元は再試行する必要があります。
ERROR_CANCELLED
接続の試行は、いずれかのネットワーク リソース プロバイダーのダイアログ ボックスまたは呼び出されたリソースによって、ユーザーによって取り消されました。
ERROR_CANNOT_OPEN_PROFILE
システムは、永続的な接続を処理するためにユーザー プロファイルを開くことができません。
ERROR_DEVICE_ALREADY_REMEMBERED
lpLocalName メンバーによって指定されたデバイスのエントリは、既にユーザー プロファイルにあります。
ERROR_EXTENDED_ERROR
ネットワーク固有のエラーが発生しました。 WNetGetLastError 関数を呼び出して、エラーの説明を取得します。
ERROR_INVALID_PASSWORD
指定したパスワードが無効で、CONNECT_INTERACTIVE フラグが設定されていません。
ERROR_NO_NET_OR_BAD_PATH
ネットワーク コンポーネントが開始されていないか、指定した名前を使用できないため、操作を実行できません。
ERROR_NO_NETWORK
ネットワークは使用できません。

備考

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 メンバーをサポートする場合がありますが、これは特定のネットワーク プロバイダーに対して行われます。

Windows 7 および Windows Server 2008 R2: pUsername で指定された明示的なユーザー資格情報を使用して、WNetAddConnection3 関数が呼び出された場合 lpPassword 、特定のサーバー上のネットワーク リソースとの接続を確立し、これらのパラメーターのいずれかを使用して、同じサーバーへの NULL (既定のユーザー名または既定のパスワードを使用する) 呼び出します。 失敗した呼び出し。 返されるエラーは、ERROR_BAD_USERNAME または ERROR_INVALID_PASSWORDになります。

手記

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

必要条件

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

関連項目

NETRESOURCE の

WNetAddConnection2 の

WNetCancelConnection2 の

WNetGetConnection の

WNetUseConnection の

Windows ネットワーク (WNet) の概要

Windows ネットワーク機能の