共用方式為


WTSQuerySessionInformationW 函式 (wtsapi32.h)

擷取指定遠端桌面會話主機 (RD 工作階段主機) 伺服器上指定工作階段的工作階段資訊。 它可用來查詢本機和遠端 RD 工作階段主機伺服器上的作業階段資訊。

語法

BOOL WTSQuerySessionInformationW(
  [in]  HANDLE         hServer,
  [in]  DWORD          SessionId,
  [in]  WTS_INFO_CLASS WTSInfoClass,
  [out] LPWSTR         *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

言論

若要在遠端桌面服務執行時擷取目前會話的會話標識碼,請呼叫 WTSQuerySessionInformation,並 WTS_CURRENT_SESSION 針對 WTSInfoClass 參數指定 SessionId 參數和 WTSSessionId。 會話標識碼會在 ppBuffer 參數中傳回。 如果遠端桌面服務未執行,則呼叫 WTSQuerySessionInformation 失敗。 在此情況下,您可以呼叫 ProcessIdToSessionId 函式來擷取目前的會話標識碼。

若要判斷您的應用程式是否在實體控制臺上執行,您必須為 SessionId 參數指定 WTS_CURRENT_SESSION並將 WTSClientProtocolType 指定為 WTSInfoClass 參數。 如果 ppBuffer 為 “0”,會話會附加至實體控制台。

注意

wtsapi32.h 標頭會根據 UNICODE 預處理器常數的定義,將 WTSQuerySessionInformation 定義為自動選取此函式 ANSI 或 Unicode 版本的別名。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows Vista
支援的最低伺服器 Windows Server 2008
目標平臺 窗戶
標頭 wtsapi32.h
連結庫 Wtsapi32.lib
DLL Wtsapi32.dll
API 集 ext-ms-win-session-wtsapi32-l1-1-0 (在 Windows 8 中引進)

另請參閱

WTSCONFIGINFO

WTSINFOEX

WTS_CLIENT_ADDRESS

WTS_CLIENT_DISPLAY

WTS_CONNECTSTATE_CLASS

WTS_INFO_CLASS

WTS_SESSION_ADDRESS