次の方法で共有


GetUserNameW 関数 (winbase.h)

現在のスレッドに関連付けられているユーザーの名前を取得します。

GetUserNameEx 関数を使用して、指定した形式でユーザー名を取得します。 追加情報は、IADsADSystemInfo インターフェイスによって提供されます。

構文

BOOL GetUserNameW(
  [out]     LPWSTR  lpBuffer,
  [in, out] LPDWORD pcbBuffer
);

パラメーター

[out] lpBuffer

ユーザーのログオン名を受け取るバッファーへのポインター。 このバッファーがユーザー名全体を格納するのに十分な大きさでない場合、関数は失敗します。 バッファー サイズ (UNLEN + 1) 文字は、終端の null 文字を含む最大長のユーザー名を保持します。 UNLEN は Lmcons.h で定義されています。

[in, out] pcbBuffer

入力時に、この変数は、lpBuffer バッファーのサイズを、TCHARで指定します。 出力時に、変数はバッファーにコピー TCHAR の数 (終端の null 文字を含む) を受け取ります。

lpBuffer 小さすぎると、関数は失敗し、GetLastError はERROR_INSUFFICIENT_BUFFERを返します。 このパラメーターは、終端の null 文字を含め、必要なバッファー サイズを受け取ります。

戻り値

関数が成功した場合、戻り値は 0 以外の値であり、lpnSize が指す変数には、lpBufferで指定されたバッファーにコピー TCHAR の数 (終端の null 文字を含む) が含まれます。

関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

現在のスレッドが別のクライアントを偽装している場合、GetUserName 関数は、スレッドが偽装しているクライアントのユーザー名を返します。

"NETWORK SERVICE" アカウントで実行されているプロセスから GetUserName 呼び出された場合、lpBuffer で返される文字列は、Windows のバージョンによって異なる場合があります。 Windows XP では、"NETWORK SERVICE" 文字列が返されます。 Windows Vista では、"<HOSTNAME>$" 文字列が返されます。

例については、「システム情報の取得を参照してください。

手記

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

必要条件

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

関連項目

GetUserNameEx を する

LookupAccountName

システム情報関数