NetWkstaUserGetInfo 関数 (lmwksta.h)
NetWkstaUserGetInfo 関数は、現在ログオンしているユーザーに関する情報を返します。 この関数は、ログオンユーザーのコンテキストで呼び出す必要があります。
構文
NET_API_STATUS NET_API_FUNCTION NetWkstaUserGetInfo(
LMSTR reserved,
[in] DWORD level,
[out] LPBYTE *bufptr
);
パラメーター
reserved
このパラメーターは NULL に設定する必要があります。
[in] level
データの情報レベルを指定します。 このパラメーターには、次の値のいずれかを指定できます。
値 | 説明 |
---|---|
|
ワークステーションに現在ログオンしているユーザーの名前を返します。 bufptr パラメーターは、WKSTA_USER_INFO_0構造体を指します。 |
|
ワークステーションに関する情報 (現在のユーザーの名前、ワークステーションからアクセスされるドメインなど) を返します。 bufptr パラメーターは、WKSTA_USER_INFO_1構造体を指します。 |
|
ワークステーションが参照するドメインを返します。 bufptr パラメーターは、WKSTA_USER_INFO_1101構造体を指します。 |
[out] bufptr
データを受信するバッファーへのポインター。 このデータの形式は 、bufptr パラメーターの値によって異なります。 このバッファーはシステムによって割り当てられ、 NetApiBufferFree 関数を使用して解放する必要があります。 詳細については、「 ネットワーク管理機能バッファー 」および「 ネットワーク管理機能バッファーの長さ」を参照してください。
戻り値
関数が成功した場合、戻り値はNERR_Success。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
リターン コード | 説明 |
---|---|
|
システムがメモリ リソースを使い果たしました。 ネットワーク マネージャーの構成が正しくないか、メモリが不足しているシステムでプログラムが実行されています。 |
|
level パラメーターが無効です。 |
|
関数パラメーターの 1 つが無効です。 |
解説
NetWkstaUserGetInfo 関数はローカルでのみ機能します。
例
次のコード サンプルは、 NetWkstaUserGetInfo 関数の呼び出しを使用して、現在ログオンしているユーザーに関する情報を取得する方法を示しています。 このサンプルでは、情報レベル 1 ( WKSTA_USER_INFO_1) を指定して NetWkstaUserGetInfo を呼び出します。 呼び出しが成功した場合、サンプルはログオンしているユーザーに関する情報を出力します。 最後に、サンプルは情報バッファーに割り当てられたメモリを解放します。
#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "netapi32.lib")
#include <stdio.h>
#include <windows.h>
#include <lm.h>
int wmain(void)
{
DWORD dwLevel = 1;
LPWKSTA_USER_INFO_1 pBuf = NULL;
NET_API_STATUS nStatus;
//
// Call the NetWkstaUserGetInfo function;
// specify level 1.
//
nStatus = NetWkstaUserGetInfo(NULL,
dwLevel,
(LPBYTE *)&pBuf);
//
// If the call succeeds, print the information
// about the logged-on user.
//
if (nStatus == NERR_Success)
{
if (pBuf != NULL)
{
wprintf(L"\n\tUser: %s\n", pBuf->wkui1_username);
wprintf(L"\tDomain: %s\n", pBuf->wkui1_logon_domain);
wprintf(L"\tOther Domains: %s\n", pBuf->wkui1_oth_domains);
wprintf(L"\tLogon Server: %s\n", pBuf->wkui1_logon_server);
}
}
// Otherwise, print the system error.
//
else
fprintf(stderr, "A system error has occurred: %d\n", nStatus);
//
// Free the allocated memory.
//
if (pBuf != NULL)
NetApiBufferFree(pBuf);
return 0;
}
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | lmwksta.h (Lm.h を含む) |
Library | Netapi32.lib |
[DLL] | Netapi32.dll |