NetWkstaUserGetInfo 函数 (lmwksta.h)
NetWkstaUserGetInfo 函数返回有关当前登录用户的信息。 必须在登录用户的上下文中调用此函数。
语法
NET_API_STATUS NET_API_FUNCTION NetWkstaUserGetInfo(
LMSTR reserved,
[in] DWORD level,
[out] LPBYTE *bufptr
);
parameters
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。
如果函数失败,则返回值可能是以下错误代码之一。
返回代码 | 说明 |
---|---|
|
系统内存资源不足。 网络管理器配置不正确,或者程序在内存不足的系统上运行。 |
|
级别参数无效。 |
|
其中一个函数参数无效。 |
注解
NetWkstaUserGetInfo 函数仅在本地工作。
示例
下面的代码示例演示如何使用调用 NetWkstaUserGetInfo 函数检索有关当前已登录用户的信息。 此示例调用 NetWkstaUserGetInfo,将信息级别指定为 1 ( WKSTA_USER_INFO_1) 。 如果调用成功,示例将输出有关已登录用户的信息。 最后,该示例释放为信息缓冲区分配的内存。
#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 |