WTSQuerySessionInformationA 函数 (wtsapi32.h)

检索指定远程桌面会话主机 (RD 会话主机) 服务器上的指定会话的会话信息。 它可用于查询本地和远程 RD 会话主机服务器上的会话信息。

语法

BOOL WTSQuerySessionInformationA(
  [in]  HANDLE         hServer,
  [in]  DWORD          SessionId,
  [in]  WTS_INFO_CLASS WTSInfoClass,
  [out] LPSTR          *ppBuffer,
  [out] DWORD          *pBytesReturned
);

参数

[in] hServer

RD 会话主机服务器的句柄。 指定 由 WTSOpenServer 函数打开的句柄,或指定 WTS_CURRENT_SERVER_HANDLE 以指示运行应用程序的 RD 会话主机服务器。

[in] SessionId

远程桌面服务会话标识符。 若要指示 (运行调用应用程序的会话或当前会话,) 指定 WTS_CURRENT_SESSION。 仅在获取本地服务器上的会话信息时指定 WTS_CURRENT_SESSION 。 如果在远程服务器上查询会话信息时指定 了WTS_CURRENT_SESSION ,则返回的会话信息将不一致。 请勿使用返回的数据。

可以使用 WTSEnumerateSessions 函数检索指定 RD 会话主机服务器上所有会话的标识符。

若要查询其他用户会话的信息,必须具有“查询信息”权限。 有关详细信息,请参阅 远程桌面服务权限。 若要修改会话的权限,请使用远程桌面服务配置管理工具。

[in] WTSInfoClass

WTS_INFO_CLASS 枚举的值,指示在调用 WTSQuerySessionInformation 函数时要检索的会话信息的类型。

[out] ppBuffer

指向变量的指针,该变量接收指向所请求信息的指针。 数据的格式和内容取决于 WTSInfoClass 参数中指定的信息类。 若要释放返回的缓冲区,请调用 WTSFreeMemory 函数。

[out] pBytesReturned

指向变量的指针,该变量接收 ppBuffer 中返回的数据的大小(以字节为单位)。

返回值

如果函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

若要在远程桌面服务运行时检索当前会话的会话 ID,请调用 WTSQuerySessionInformation 并为 SessionId 参数指定WTS_CURRENT_SESSION,为 WTSInfoClass 参数指定 WTSSessionId。 会话 ID 将在 ppBuffer 参数中返回。 如果远程桌面服务未运行,则调用 WTSQuerySessionInformation 失败。 在这种情况下,可以通过调用 ProcessIdToSessionId 函数来检索当前会话 ID。

若要确定应用程序是否在物理主机上运行,必须为 SessionId 参数指定WTS_CURRENT_SESSION,将 WTSClientProtocolType 指定为 WTSInfoClass 参数。 如果 ppBuffer 为“0”,则会话将附加到物理控制台。

注意

wtsapi32.h 标头将 WTSQuerySessionInformation 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 wtsapi32.h
Library Wtsapi32.lib
DLL Wtsapi32.dll
API 集 在 Windows 8) 中引入的 ext-ms-win-session-wtsapi32-l1-1-0 (

另请参阅

WTSCONFIGINFO

WTSINFOEX

WTS_CLIENT_ADDRESS

WTS_CLIENT_DISPLAY

WTS_CONNECTSTATE_CLASS

WTS_INFO_CLASS

WTS_SESSION_ADDRESS