Функция WTSQuerySessionInformationA (wtsapi32.h)
Извлекает сведения о сеансе для указанного сеанса на указанном сервере узла сеансов удаленных рабочих столов (узла сеансов удаленных рабочих столов). Его можно использовать для запроса сведений о сеансе на локальных и удаленных серверах узла сеансов удаленных рабочих столов.
Синтаксис
BOOL WTSQuerySessionInformationA(
[in] HANDLE hServer,
[in] DWORD SessionId,
[in] WTS_INFO_CLASS WTSInfoClass,
[out] LPSTR *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 .
Чтобы определить, выполняется ли приложение на физической консоли, необходимо указать WTS_CURRENT_SESSION для параметра SessionId и WTSClientProtocolType в качестве параметра WTSInfoClass . Если параметр ppBuffer имеет значение "0", сеанс присоединяется к физической консоли.
Примечание
Заголовок wtsapi32.h определяет WTSQuerySessionInformation в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | wtsapi32.h |
Библиотека | Wtsapi32.lib |
DLL | Wtsapi32.dll |
Набор API | ext-ms-win-session-wtsapi32-l1-1-0 (представлено в Windows 8) |