NetWkstaUserGetInfo 函数 (lmwksta.h)

NetWkstaUserGetInfo 函数返回有关当前登录用户的信息。 必须在登录用户的上下文中调用此函数。

语法

NET_API_STATUS NET_API_FUNCTION NetWkstaUserGetInfo(
        LMSTR  reserved,
  [in]  DWORD  level,
  [out] LPBYTE *bufptr
);

parameters

reserved

此参数必须设置为 NULL

[in] level

指定数据的信息级别。 此参数的取值可为下列值之一:

含义
0
返回当前登录到工作站的用户的名称。 bufptr 参数指向WKSTA_USER_INFO_0结构。
1
返回有关工作站的信息,包括当前用户的名称以及工作站访问的域。 bufptr 参数指向WKSTA_USER_INFO_1结构。
1101
返回工作站浏览的域。 bufptr 参数指向WKSTA_USER_INFO_1101结构。

[out] bufptr

指向接收数据的缓冲区的指针。 此数据的格式取决于 bufptr 参数的值。 此缓冲区由系统分配,必须使用 NetApiBufferFree 函数释放。 有关详细信息,请参阅 网络管理功能缓冲区网络管理功能缓冲区长度

返回值

如果函数成功,则返回值NERR_Success。

如果函数失败,则返回值可能是以下错误代码之一。

返回代码 说明
ERROR_NOT_ENOUGH_MEMORY
系统内存资源不足。 网络管理器配置不正确,或者程序在内存不足的系统上运行。
ERROR_INVALID_LEVEL
级别参数无效。
ERROR_INVALID_PARAMETER
其中一个函数参数无效。

注解

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

另请参阅

NetWkstaSetInfo

网络管理功能

网络管理概述

WKSTA_USER_INFO_0

WKSTA_USER_INFO_1

WKSTA_USER_INFO_1101

工作站和工作站用户功能