WNetGetUserA 関数 (winnetwk.h)
WNetGetUser 関数は、現在の既定のユーザー名、またはネットワーク接続の確立に使用されるユーザー名を取得します。
構文
DWORD WNetGetUserA(
[in] LPCSTR lpName,
[out] LPSTR lpUserName,
[in, out] LPDWORD lpnLength
);
パラメーター
[in] lpName
ネットワーク リソースにリダイレクトされたローカル デバイスの名前、またはローカル デバイスをリダイレクトせずに接続が行われたネットワーク リソースのリモート名を指定する 、null で終わる定数文字列へのポインター。
このパラメーターが NULL または空の文字列の場合、システムはプロセスの現在のユーザーの名前を返します。
[out] lpUserName
null で終わるユーザー名を受け取るバッファーへのポインター。
[in, out] lpnLength
lpUserName バッファーのサイズを文字で指定する変数へのポインター。 バッファーが十分な大きさでないために呼び出しが失敗した場合、この変数には必要なバッファー サイズが含まれます。
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が失敗した場合、戻り値は システム エラー コード (次のいずれかの値など) です。
リターン コード | 説明 |
---|---|
|
lpName パラメーターで指定されたデバイスは、リダイレクトされたデバイスまたは接続されたネットワーク名ではありません。 |
|
後続の呼び出しでは、さらに多くのエントリを使用できます。 |
|
ネットワークが利用できません。 |
|
ネットワーク固有のエラーが発生しました。 エラーの説明を取得するには、 WNetGetLastError 関数を呼び出します。 |
|
どのプロバイダーも、ローカル名が接続を持つものとして認識されません。 ただし、接続が属している可能性のあるプロバイダーが少なくとも 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 を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winnetwk.h |
Library | Mpr.lib |
[DLL] | Mpr.dll |