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。
関数が失敗した場合、戻り値は システム エラー コード (次のいずれかの値など) です。
リターン コード | 説明 |
---|---|
|
lpLocalName パラメーターが指す文字列が無効です。 |
|
lpLocalName で指定されたデバイスは、リダイレクトされたデバイスではありません。 詳細については、「解説」を参照してください。 |
|
バッファーが小さすぎます。 lpnLength パラメーターは、必要なバッファー サイズを含む変数を指します。 後続の呼び出しでは、さらに多くのエントリを使用できます。 |
|
デバイスは現在接続されていませんが、永続的な接続です。 詳細については、「解説」を参照してください。 |
|
ネットワークが利用できません。 |
|
ネットワーク固有のエラーが発生しました。 エラーの説明を取得するには、 WNetGetLastError 関数を呼び出します。 |
|
どのプロバイダーも、ローカル名が接続を持つものとして認識されません。 ただし、接続が属している可能性のあるプロバイダーが少なくとも 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 関数を使用してローカル デバイスに関連付けられているネットワーク リソースの名前を取得する方法を示すコード サンプルについては、「接続名の取得」を参照してください。
Note
winnetwk.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして WNetGetConnection を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winnetwk.h |
Library | Mpr.lib |
[DLL] | Mpr.dll |