From 9ed8b4d807c6c7318e8baefc19f7f77515363d00 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 24 Jun 2009 10:30:07 +0000 Subject: [PATCH] * include/wtsapi32.h (WTSQueryUserToken, WTSEnumerateSessionsW, WTSEnumerateSessionsA): Add function prototypes. (struct _WTS_SESSION_INFOW, struct _WTS_SESSION_INFOA): Add typedefs. (WTS_SESSION_INFO, PWTS_SESSION_INFO, WTSEnumerateSessions): Add defines dependent on UNICODE setting. --- winsup/w32api/ChangeLog | 8 ++++++++ winsup/w32api/include/wtsapi32.h | 34 ++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index a04b62a1c..dcae4f96d 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,11 @@ +2009-06-24 Corinna Vinschen + + * include/wtsapi32.h (WTSQueryUserToken, WTSEnumerateSessionsW, + WTSEnumerateSessionsA): Add function prototypes. + (struct _WTS_SESSION_INFOW, struct _WTS_SESSION_INFOA): Add typedefs. + (WTS_SESSION_INFO, PWTS_SESSION_INFO, WTSEnumerateSessions): Add + defines dependent on UNICODE setting. + 2009-06-07 Corinna Vinschen * include/ddk/ntapi.h: Add NtXxx equivalent to ZwXxx where missing diff --git a/winsup/w32api/include/wtsapi32.h b/winsup/w32api/include/wtsapi32.h index 23e54bb16..dcf95a5eb 100644 --- a/winsup/w32api/include/wtsapi32.h +++ b/winsup/w32api/include/wtsapi32.h @@ -74,6 +74,7 @@ BOOL WINAPI WTSQuerySessionInformationA(HANDLE hServer, DWORD SessionId, WTS_INF LPSTR *ppBuffer, DWORD *pBytesReturned); BOOL WINAPI WTSQuerySessionInformationW(HANDLE hServer, DWORD SessionId, WTS_INFO_CLASS WTSInfoClass, LPTSTR *ppBuffer, DWORD *pBytesReturned); +BOOL WINAPI WTSQueryUserToken(ULONG SessionId, PHANDLE pToken); void WINAPI WTSFreeMemory(PVOID pMemory); #ifdef UNICODE @@ -86,6 +87,26 @@ void WINAPI WTSFreeMemory(PVOID pMemory); #if (_WIN32_WINNT >= 0x0500) +typedef struct _WTS_SESSION_INFOW { + DWORD SessionId; + LPWSTR pWinStationName; + WTS_CONNECTSTATE_CLASS State; +} WTS_SESSION_INFOW, *PWTS_SESSION_INFOW; + +typedef struct _WTS_SESSION_INFOA { + DWORD SessionId; + LPSTR pWinStationName; + WTS_CONNECTSTATE_CLASS State; +} WTS_SESSION_INFOA, *PWTS_SESSION_INFOA; + +#ifdef UNICODE +#define WTS_SESSION_INFO WTS_SESSION_INFOW +#define PWTS_SESSION_INFO PWTS_SESSION_INFOW +#else +#define WTS_SESSION_INFO WTS_SESSION_INFOA +#define PWTS_SESSION_INFO PWTS_SESSION_INFOA +#endif + // WTSWaitSystemEvent local server handle #define WTS_CURRENT_SERVER_HANDLE 0 #define WTS_CURRENT_SESSION ((DWORD)-1) @@ -106,6 +127,19 @@ void WINAPI WTSFreeMemory(PVOID pMemory); BOOL WINAPI WTSWaitSystemEvent(HANDLE hServer, DWORD EventMask, DWORD* pEventFlags); BOOL WINAPI WTSDisconnectSession(HANDLE hServer, DWORD SessionId, BOOL bWait); +BOOL WINAPI WTSEnumerateSessionsW(HANDLE hServer, DWORD Reserved, DWORD Version, + PWTS_SESSION_INFOW *ppSessionInfo, + PDWORD pCount); +BOOL WINAPI WTSEnumerateSessionsA(HANDLE hServer, DWORD Reserved, DWORD Version, + PWTS_SESSION_INFOA *ppSessionInfo, + PDWORD pCount); + +#ifdef UNICODE +#define WTSEnumerateSessions WTSEnumerateSessionsW +#else +#define WTSEnumerateSessions WTSEnumerateSessionsA +#endif + #endif /* _WIN32_WINNT >= 0x0500 */ #ifdef __cplusplus