次の方法で共有


WNetGetUserA 関数 (winnetwk.h)

WNetGetUser 関数は、現在の既定のユーザー名、またはネットワーク接続の確立に使用されるユーザー名を取得します。

構文

DWORD WNetGetUserA(
  [in]      LPCSTR  lpName,
  [out]     LPSTR   lpUserName,
  [in, out] LPDWORD lpnLength
);

パラメーター

[in] lpName

ネットワーク リソースにリダイレクトされたローカル デバイスの名前、またはローカル デバイスをリダイレクトせずに接続が確立されたネットワーク リソースのリモート名を指定する、null終了文字列を 定数へのポインター。

このパラメーターが NULL または空の文字列 場合、システムはプロセスの現在のユーザーの名前を返します。

[out] lpUserName

null-terminated ユーザー名を受け取るバッファーへのポインター。

[in, out] lpnLength

lpUserName バッファーのサイズを文字で指定する変数へのポインター。 バッファーが十分な大きさではないために呼び出しが失敗した場合、この変数には必要なバッファー サイズが含まれます。

戻り値

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

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

リターン コード 形容
ERROR_NOT_CONNECTED
lpName パラメーターで指定されたデバイスは、リダイレクトされたデバイスまたは接続されたネットワーク名ではありません。
ERROR_MORE_DATA
後続の呼び出しでは、さらに多くのエントリを使用できます。
ERROR_NO_NETWORK
ネットワークは使用できません。
ERROR_EXTENDED_ERROR
ネットワーク固有のエラーが発生しました。 エラーの説明を取得するには、WNetGetLastError 関数を呼び出します。
ERROR_NO_NET_OR_BAD_PATH
どのプロバイダーも、接続を持つローカル名を認識しません。 ただし、接続が属している可能性のあるプロバイダーが少なくとも 1 つでは、ネットワークを使用できません。

備考

WNetGetUser 関数は、分散ファイル システム (DFS) 上の共有を認識しません。 lpName パラメーターで指定された名前が、DFS 共有または DFS 共有を表すリモート リソースにリダイレクトされたローカル デバイスである場合、WNetGetUser 関数はERROR_NOT_CONNECTEDで失敗します。

次のコード サンプルは、WNetGetUser 関数を使用して、リダイレクトされたローカル デバイスまたはリモート ネットワーク リソースに関連付けられているユーザーの名前を取得する方法を示しています。

#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "mpr.lib")

#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <Winnetwk.h>

int wmain(int argc, wchar_t * argv[])
{
    DWORD dwRetVal;

    WCHAR UserName[MAX_PATH];

    DWORD dwNameLength = MAX_PATH;

    if (argc != 2) {
        wprintf
            (L"Usage: %s [Redirected-LocalDevice or Network-Resource-Remote-name\n",
             argv[0]);
        exit(1);
    }

    wprintf(L"Calling WNetGetUser with Network-Resource = %s\n", argv[1]);

    dwRetVal = WNetGetUser(argv[1], UserName, &dwNameLength);
    //
    // If the call succeeds, print the user information.
    //
    if (dwRetVal == NO_ERROR) {

        wprintf(L"WNetGetUser returned success\n");
        wprintf(L"\tUsername=%s   NameLength=%d\n", &UserName, dwNameLength);
        exit(0);
    }

    else {
        wprintf(L"WNetGetUser failed with error: %u\n", dwRetVal);
        exit(1);
    }
}


手記

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

必要条件

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

関連項目

ユーザー名 を取得する

WNetGetConnection の

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

Windows ネットワーク機能の