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,