次の方法で共有


WNetUseConnectionA 関数 (winnetwk.h)

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

WNetUseConnection 関数は、WNetAddConnection3 関数に似ています。 主な違いは、WNetUseConnection 、ネットワーク リソースにリダイレクトする未使用のローカル デバイスを自動的に選択できることです。

構文

DWORD WNetUseConnectionA(
  [in]      HWND           hwndOwner,
  [in]      LPNETRESOURCEA lpNetResource,
  [in]      LPCSTR         lpPassword,
  [in]      LPCSTR         lpUserId,
  [in]      DWORD          dwFlags,
  [out]     LPSTR          lpAccessName,
  [in, out] LPDWORD        lpBufferSize,
  [out]     LPDWORD        lpResult
);

パラメーター

[in] hwndOwner

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

[in] lpNetResource

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

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

メンバー 意味
dwType を する
接続するリソースの種類を指定します。

RESOURCETYPE_DISKやRESOURCETYPE_PRINTなど、このメンバーでリソースの種類を指定するのが最も効率的です。 ただし、lpLocalName メンバーが NULL場合、または空の文字列を指していてCONNECT_REDIRECTが設定されていない場合は、dwType RESOURCETYPE_ANYできます。

このメソッドは、関数がネットワーク リソースにリダイレクトするデバイスを自動的に選択しない場合にのみ機能します。

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

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

文字列が空の場合、または lpLocalName が NULL場合、ネットワークへの接続はリダイレクトなしで行われます。

CONNECT_REDIRECT値が dwFlags パラメーターに設定されている場合、またはネットワークでリダイレクトされたローカル デバイスが必要な場合、関数はリダイレクトするローカル デバイスを選択し、lpAccessName パラメーターにデバイスの名前を返します。

lpRemoteName を する
接続先のネットワーク リソースを指定する null-terminated 文字列へのポインター。 文字列の長さは最大MAX_PATH文字で、ネットワーク プロバイダーの名前付け規則に従う必要があります。
lpProvider を する
接続先のネットワーク プロバイダーを指定する null終了文字列へのポインター。 lpProvider が NULL場合、または空の文字列を指している場合、オペレーティング システムは、lpRemoteName メンバーが指す文字列を解析して、適切なプロバイダーの特定を試みます。

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

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

 

WNetUseConnection 関数は、NETRESOURCE 構造体の他のメンバーを無視します。 詳細については、dwFlags パラメーターについては、次の説明を参照してください。

[in] lpPassword

ネットワーク接続 使用するパスワードを指定する null-terminated 文字列を指す定数へのポインター。

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

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

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

[in] lpUserId

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

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

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

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

[in] dwFlags

接続を記述するビット フラグのセット。 このパラメーターには、次の値を任意に組み合わせて使用できます。

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

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

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

Windows XP: システムがネットワーク ドライブ文字を自動的に割り当てると、文字が Z: で始まり、Y: で始まり、C: で終わる文字が割り当てられます。 これにより、ログオンごとのドライブ文字 (ネットワーク ドライブ文字など) とグローバル ドライブ文字 (ディスク ドライブなど) の競合が軽減されます。 以前のリリースでは、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: この値はサポートされていません。

[out] lpAccessName

接続でシステム要求を受信するバッファーへのポインター。 このパラメーターは NULLできます。

このパラメーターを指定し、NETRESOURCE 構造体の lpLocalName メンバーがローカル デバイスを指定する場合、このバッファーはローカル デバイス名を受け取ります。 lpLocalName がデバイスを指定せず、ネットワークでローカル デバイスのリダイレクトが必要な場合、またはCONNECT_REDIRECT値が設定されている場合、このバッファーはリダイレクトされたローカル デバイスの名前を受け取ります。

それ以外の場合、バッファーにコピーされる名前はリモート リソースの名前になります。 指定する場合、このバッファーは、lpRemoteName メンバーが指す文字列と同じ大きさにする必要があります。

[in, out] lpBufferSize

lpAccessName バッファーのサイズを文字で指定する変数へのポインター。 バッファーが十分な大きさではないために呼び出しが失敗した場合、関数はこの場所で必要なバッファー サイズを返します。 詳細については、「戻り値」セクションの lpAccessName パラメーターとERROR_MORE_DATAエラー・コードの説明を参照してください。

[out] lpResult

接続に関する追加情報を受け取る変数へのポインター。 このパラメーターには、次の値を指定できます。

価値 意味
CONNECT_LOCALDRIVE
このフラグが設定されている場合、接続はローカル デバイス リダイレクトを使用して行われました。 lpAccessName パラメーターがバッファーを指している場合は、ローカル デバイス名がバッファーにコピーされます。

戻り値

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

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

リターン コード 形容
ERROR_ACCESS_DENIED
呼び出し元は、ネットワーク リソースにアクセスできません。
ERROR_ALREADY_ASSIGNED
lpLocalName メンバーによって指定されたローカル デバイスは、既にネットワーク リソースに接続されています。
ERROR_BAD_DEVICE
lpLocalName 指定された値が無効です。
ERROR_BAD_NET_NAME
リソース名が無効であるか、名前付きリソースが見つからないため、lpRemoteName メンバーで指定された値は、どのネットワーク リソース プロバイダーにも受け入れられません。
ERROR_BAD_PROVIDER
lpProvider メンバーによって指定された値がプロバイダーと一致しません。
ERROR_CANCELLED
接続の試行は、いずれかのネットワーク リソース プロバイダーのダイアログ ボックスまたは呼び出されたリソースによって、ユーザーによって取り消されました。
ERROR_EXTENDED_ERROR
ネットワーク固有のエラーが発生しました。 エラーの説明を取得するには、WNetGetLastError 関数を呼び出します。
ERROR_INVALID_ADDRESS
呼び出し元は、アクセスできないバッファーへのポインターで渡されました。
ERROR_INVALID_PARAMETER
このエラーは、次のいずれかの条件の結果です。
  1. lpRemoteName メンバーは NULL。 さらに、lpAccessName は NULLされませんが、lpBufferSize は NULL またはゼロを指します。
  2. dwType メンバーはRESOURCETYPE_DISKでもRESOURCETYPE_PRINTでもありません。 さらに、CONNECT_REDIRECTが dwFlags で設定され、lpLocalName が NULLするか、ローカル デバイスのリダイレクトを必要とするネットワークへの接続です。
ERROR_INVALID_PASSWORD
指定したパスワードが無効で、CONNECT_INTERACTIVE フラグが設定されていません。
ERROR_MORE_DATA
lpAccessName バッファーが小さすぎます。

ローカル デバイスがリダイレクトされる場合、バッファーはローカル デバイス名を格納するのに十分な大きさである必要があります。 それ以外の場合、バッファーには、lpRemoteName指す文字列、または lpRemoteNameによってエイリアスが指されている接続可能なリソースの名前 含めるのに十分な大きさにする必要があります。 このエラーが返された場合、接続は行われません。

ERROR_NO_MORE_ITEMS
有効なすべてのローカル デバイスが使用されているため、オペレーティング システムでローカル リダイレクトを自動的に選択することはできません。
ERROR_NO_NET_OR_BAD_PATH
ネットワーク コンポーネントが開始されていないか、指定されたリソース名が認識されないために、操作を完了できませんでした。
ERROR_NO_NETWORK
ネットワークは使用できません。

備考

Windows Server 2003 および Windows XP: WNet 関数は、MS-DOS デバイスが AuthenticationID によって識別されるため、ログオン セッションに関連付けられている MS-DOS デバイス名前空間でネットワーク ドライブ文字を作成および削除します。 (AuthenticationID は、ログオン セッションに関連付けられた ローカル一意識別子 (LUID)です)。これは、いずれかの WNet 関数を呼び出して 1 人のユーザー ログオンでネットワーク ドライブ文字を作成するが、別のユーザー ログオンで既存のネットワーク ドライブ文字を照会するアプリケーションに影響を与える可能性があります。 このような状況の例としては、たとえば、CreateProcessAsUser 関数を呼び出すことによって、ログオン セッション内にユーザーの 2 番目のログオンが作成され、2 番目のログオンで、GetLogicalDrives 関数を呼び出すアプリケーションが実行される場合があります。 GetLogicalDrives は、最初のログオン時に WNet 関数によって作成されたネットワーク ドライブ文字を返しません。 前の例では、最初のログオン セッションがまだ存在し、ターミナル サービス セッションを含む任意のログオン セッションにこの例を適用できることに注意してください。 詳細については、「MS-DOS デバイス名の定義 」を参照してください。

手記

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

必要条件

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

関連項目

WNetAddConnection2 の

WNetAddConnection3 の

WNetGetConnection の

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

Windows ネットワーク機能の

WnetCancelConnection