次の方法で共有


WNetGetConnectionA 関数 (winnetwk.h)

WNetGetConnection 関数は、ローカル デバイスに関連付けられているネットワーク リソースの名前を取得します。

構文

DWORD WNetGetConnectionA(
  [in]      LPCSTR  lpLocalName,
  [out]     LPSTR   lpRemoteName,
  [in, out] LPDWORD lpnLength
);

パラメーター

[in] lpLocalName

ネットワーク名を取得するローカル デバイスの名前を指定する、null で終わる定数文字列へのポインター。

[out] lpRemoteName

接続の確立に使用されるリモート名を受け取る null で終わる文字列へのポインター。

[in, out] lpnLength

lpRemoteName パラメーターが指すバッファーのサイズを文字で指定する変数へのポインター。 バッファーが十分な大きさではないために関数が失敗した場合、このパラメーターは必要なバッファー サイズを返します。

戻り値

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

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

リターン コード 形容
ERROR_BAD_DEVICE
lpLocalName パラメーターが指す文字列が無効です。
ERROR_NOT_CONNECTED
lpLocalName で指定 デバイスがリダイレクトされたデバイスではありません。 詳細については、次の「解説」セクションを参照してください。
ERROR_MORE_DATA
バッファーが小さすぎます。 lpnLength パラメーターは、必要なバッファー サイズを含む変数を指します。 後続の呼び出しでは、さらに多くのエントリを使用できます。
ERROR_CONNECTION_UNAVAIL
デバイスは現在接続されていませんが、永続的な接続です。 詳細については、次の「解説」セクションを参照してください。
ERROR_NO_NETWORK
ネットワークは使用できません。
ERROR_EXTENDED_ERROR
ネットワーク固有のエラーが発生しました。 エラーの説明を取得するには、WNetGetLastError 関数を呼び出します。
ERROR_NO_NET_OR_BAD_PATH
どのプロバイダーも、接続を持つローカル名を認識しません。 ただし、接続が属している可能性のあるプロバイダーが少なくとも 1 つでは、ネットワークを使用できません。

備考

Microsoft LAN Manager ネットワークを使用してネットワーク接続が確立され、呼び出し元のアプリケーションが接続したアプリケーションとは異なるログオン セッションで実行されている場合、関連付けられているローカル デバイスの WNetGetConnection 関数の呼び出しは失敗します。 関数は、ERROR_NOT_CONNECTEDまたはERROR_CONNECTION_UNAVAILで失敗します。 これは、Microsoft LAN Manager を使用して行われた接続は、接続を行ったアプリケーションと同じログオン セッションで実行されているアプリケーションにのみ表示されるためです。 (WNetGetConnection の呼び出しが失敗しないようにするには、接続を作成したユーザー アカウントでアプリケーションを実行するだけでは不十分です)。

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

WNetGetConnection 関数を使用してローカル デバイスに関連付けられているネットワーク リソースの名前を取得する方法を示すコード サンプルについては、「接続名の取得」を参照してください。

手記

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

必要条件

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

関連項目

WNetAddConnection2 の

WNetAddConnection3 の

WNetGetUser の

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

Windows ネットワーク機能の