Stub implementations for WTSCloseServer, WTSDisconnectSession,
WTSEnumerateProcesses{A,W}, WTSEnumerateSessions{A,W},
WTSQuerySessionInformationA.

diff --git a/dlls/wtsapi32/wtsapi32.c b/dlls/wtsapi32/wtsapi32.c
index 09a3c65..698f68b 100644
--- a/dlls/wtsapi32/wtsapi32.c
+++ b/dlls/wtsapi32/wtsapi32.c
@@ -47,6 +47,83 @@
     return TRUE;
 }
 
+/************************************************************
+ *                WTSCloseServer  (WTSAPI32.@)
+ */
+void WINAPI WTSCloseServer(HANDLE hServer)
+{
+    FIXME("Stub %p\n", hServer);
+}
+
+/************************************************************
+ *                WTSDisconnectSession  (WTSAPI32.@)
+ */
+BOOL WINAPI WTSDisconnectSession(HANDLE hServer, DWORD SessionId, BOOL bWait)
+{
+    FIXME("Stub %p 0x%08lx %d\n", hServer, SessionId, bWait);
+    return FALSE;
+}
+
+/************************************************************
+ *                WTSEnumerateProcessesA  (WTSAPI32.@)
+ */
+BOOL WINAPI WTSEnumerateProcessesA(HANDLE hServer, DWORD Reserved, DWORD Version,
+    PWTS_PROCESS_INFOA* ppProcessInfo, DWORD* pCount)
+{
+    FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version,
+          ppProcessInfo, pCount);
+    return FALSE;
+}
+
+/************************************************************
+ *                WTSEnumerateProcessesW  (WTSAPI32.@)
+ */
+BOOL WINAPI WTSEnumerateProcessesW(HANDLE hServer, DWORD Reserved, DWORD Version,
+    PWTS_PROCESS_INFOW* ppProcessInfo, DWORD* pCount)
+{
+    FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version,
+          ppProcessInfo, pCount);
+    return FALSE;
+}
+
+/************************************************************
+ *                WTSEnumerateEnumerateSessionsA  (WTSAPI32.@)
+ */
+BOOL WTSEnumerateSessionsA(HANDLE hServer, DWORD Reserved, DWORD Version,
+    PWTS_SESSION_INFOA* ppSessionInfo, DWORD* pCount)
+{
+    FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version,
+          ppSessionInfo, pCount);
+    return FALSE;
+}
+
+/************************************************************
+ *                WTSEnumerateEnumerateSessionsW  (WTSAPI32.@)
+ */
+BOOL WTSEnumerateSessionsW(HANDLE hServer, DWORD Reserved, DWORD Version,
+    PWTS_SESSION_INFOW* ppSessionInfo, DWORD* pCount)
+{
+    FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version,
+          ppSessionInfo, pCount);
+    return FALSE;
+}
+
+/************************************************************
+ *                WTSQuerySessionInformationA  (WTSAPI32.@)
+ */
+BOOL WINAPI WTSQuerySessionInformationA(
+    HANDLE hServer,
+    DWORD SessionId,
+    WTS_INFO_CLASS WTSInfoClass,
+    LPSTR* Buffer,
+    DWORD* BytesReturned)
+{
+    /* FIXME: Forward request to winsta.dll::WinStationQueryInformationA */
+    FIXME("Stub %p 0x%08lx %d %p %p\n", hServer, SessionId, WTSInfoClass,
+        Buffer, BytesReturned);
+
+    return FALSE;
+}
 
 /************************************************************
  *                WTSQuerySessionInformationW  (WTSAPI32.@)
@@ -65,7 +142,6 @@
     return FALSE;
 }
 
-
 /************************************************************
  *                WTSWaitSystemEvent (WTSAPI32.@)
  */
diff --git a/dlls/wtsapi32/wtsapi32.spec b/dlls/wtsapi32/wtsapi32.spec
index 108540b..e791a0e 100644
--- a/dlls/wtsapi32/wtsapi32.spec
+++ b/dlls/wtsapi32/wtsapi32.spec
@@ -1,16 +1,16 @@
-@ stub WTSCloseServer
-@ stub WTSDisconnectSession
-@ stub WTSEnumerateProcessA
-@ stub WTSEnumerateProcessW
+@ stdcall WTSCloseServer(long)
+@ stdcall WTSDisconnectSession(long long long)
+@ stdcall WTSEnumerateProcessesA(long long long ptr ptr)
+@ stdcall WTSEnumerateProcessesW(long long long ptr ptr)
 @ stub WTSEnumerateServersA
 @ stub WTSEnumerateServersW
-@ stub WTSEnumerateSessionsA
-@ stub WTSEnumerateSessionsW
+@ stdcall WTSEnumerateSessionsA(long long long ptr ptr)
+@ stdcall WTSEnumerateSessionsW(long long long ptr ptr)
 @ stub WTSFreeMemory
 @ stub WTSLogoffSession
 @ stub WTSOpenServerA
 @ stub WTSOpenServerW
-@ stub WTSQuerySessionInformationA
+@ stdcall WTSQuerySessionInformationA(long long long ptr ptr)
 @ stdcall WTSQuerySessionInformationW(long long long ptr ptr)
 @ stub WTSQueryUserConfigA
 @ stub WTSQueryUserConfigW
diff --git a/include/wtsapi32.h b/include/wtsapi32.h
index 246adcf..a6a777c 100644
--- a/include/wtsapi32.h
+++ b/include/wtsapi32.h
@@ -45,6 +45,49 @@
     WTSClientProtocolType,
 } WTS_INFO_CLASS;
 
+typedef enum _WTS_CONNECTSTATE_CLASS
+{
+    WTSActive,
+    WTSConnected,
+    WTSConnectQuery,
+    WTSShadow,
+    WTSDisconnected,
+    WTSIdle,
+    WTSListen,
+    WTSReset,
+    WTSDown,
+    WTSInit
+} WTS_CONNECTSTATE_CLASS;
+
+typedef struct _WTS_PROCESS_INFOA
+{
+    DWORD SessionId;
+    DWORD ProcessId;
+    LPSTR pProcessName;
+    PSID pUserSid;
+} WTS_PROCESS_INFOA, *PWTS_PROCESS_INFOA;
+
+typedef struct _WTS_PROCESS_INFOW
+{
+    DWORD SessionId;
+    DWORD ProcessId;
+    LPWSTR pProcessName;
+    PSID pUserSid;
+} WTS_PROCESS_INFOW, *PWTS_PROCESS_INFOW;
+
+typedef struct _WTS_SESSION_INFOA
+{
+    DWORD SessionId;
+    LPSTR pWinStationName;
+    WTS_CONNECTSTATE_CLASS State;
+} WTS_SESSION_INFOA, *PWTS_SESSION_INFOA;
+
+typedef struct _WTS_SESSION_INFOW
+{
+    DWORD SessionId;
+    LPWSTR pWinStationName;
+    WTS_CONNECTSTATE_CLASS State;
+} WTS_SESSION_INFOW, *PWTS_SESSION_INFOW;
 
 BOOL WINAPI WTSQuerySessionInformationW(
     HANDLE hServer,