Функция WTSQuerySessionInformationW (wtsapi32.h)
Извлекает сведения о сеансе для указанного сеанса на указанном сервере узла сеансов удаленного рабочего стола (RD Session Host). Его можно использовать для запроса сведений о сеансе на локальных и удаленных серверах узла сеансов удаленных рабочих столах.
Синтаксис
BOOL WTSQuerySessionInformationW(
[in] HANDLE hServer,
[in] DWORD SessionId,
[in] WTS_INFO_CLASS WTSInfoClass,
[out] LPWSTR *ppBuffer,
[out] DWORD *pBytesReturned
);
Параметры
[in] hServer
Дескриптор сервера узла сеанса удаленных рабочих точек. Укажите дескриптор, открытый функцией WTSOpenServer, или укажите WTS_CURRENT_SERVER_HANDLE, чтобы указать сервер узла сеансов удаленных рабочих столов, на котором работает приложение.
[in] SessionId
Идентификатор сеанса служб удаленных рабочих столов. Чтобы указать сеанс, в котором запущено вызывающее приложение (или текущий сеанс), укажите WTS_CURRENT_SESSION. Укажите только WTS_CURRENT_SESSION при получении сведений о сеансе на локальном сервере. Если WTS_CURRENT_SESSION указывается при запросе сведений о сеансе на удаленном сервере, возвращаемые сведения о сеансе будут несогласованы. Не используйте возвращаемые данные.
Вы можете использовать функцию WTSEnumerateSessions для получения идентификаторов всех сеансов на указанном сервере узла сеансов удаленных рабочих столов.
Чтобы запросить сведения для сеанса другого пользователя, необходимо иметь разрешение на получение сведений о запросах. Дополнительные сведения см. в разделе Разрешения служб удаленных рабочих столов. Чтобы изменить разрешения на сеанс, используйте средство администрирования службы удаленных рабочих столов.
[in] WTSInfoClass
Значение перечисления WTS_INFO_CLASS, указывающее тип сведений о сеансе для получения в вызове функции WTSQuerySessionInformation.
[out] ppBuffer
Указатель на переменную, которая получает указатель на запрошенные сведения. Формат и содержимое данных зависят от класса сведений, указанного в параметре WTSInfoClass. Чтобы освободить возвращенный буфер, вызовите функцию WTSFreeMemory.
[out] pBytesReturned
Указатель на переменную, которая получает размер в байтах данных, возвращаемых в ppBuffer.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение является ненулевое значение.
Если функция завершается ошибкой, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Замечания
Чтобы получить идентификатор сеанса для текущего сеанса при запуске служб удаленных рабочих столов, вызовите WTSQuerySessionInformation и укажите WTS_CURRENT_SESSION для параметра SessionId и WTSSessionId для параметра WTSInfoClass. Идентификатор сеанса будет возвращен в параметре ppBuffer. Если службы удаленных рабочих столов не выполняются, вызовы WTSQuerySessionInformation сбой. В этой ситуации можно получить идентификатор текущего сеанса, вызвав функцию ProcessIdToSessionId.
Чтобы определить, работает ли приложение на физической консоли, необходимо указать
Заметка
Заголовок wtsapi32.h определяет WTSQuerySessionInformation как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista |
минимальный поддерживаемый сервер | Windows Server 2008 |
целевая платформа | Виндоус |
заголовка | wtsapi32.h |
библиотеки |
Wtsapi32.lib |
DLL | Wtsapi32.dll |
набор API | ext-ms-win-session-wtsapi32-l1-1-0 (представлено в Windows 8) |