diff --git a/dlls/wtsapi32/wtsapi32.c b/dlls/wtsapi32/wtsapi32.c index 09a3c65d3f8..698f68bf1cb 100644 --- a/dlls/wtsapi32/wtsapi32.c +++ b/dlls/wtsapi32/wtsapi32.c @@ -47,6 +47,83 @@ BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) 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 @@ BOOL WINAPI WTSQuerySessionInformationW( return FALSE; } - /************************************************************ * WTSWaitSystemEvent (WTSAPI32.@) */ diff --git a/dlls/wtsapi32/wtsapi32.spec b/dlls/wtsapi32/wtsapi32.spec index 108540ba2ee..e791a0ef27d 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 246adcf55cd..a6a777c52ef 100644 --- a/include/wtsapi32.h +++ b/include/wtsapi32.h @@ -45,6 +45,49 @@ typedef enum tagWTS_INFO_CLASS 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,