server: Add a common structure to store irp parameters.
[wine.git] / include / wtsapi32.h
blob304a41872670d243f21f90a2e8f126471125fe9d
1 /*
2 * Copyright 2005 Ulrich Czekalla (For CodeWeavers)
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_WTSAPI32_H
20 #define __WINE_WTSAPI32_H
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
27 typedef enum _WTS_VIRTUAL_CLASS
29 WTSVirtualClientData,
30 WTSVirtualFileHandle
31 } WTS_VIRTUAL_CLASS;
33 typedef enum tagWTS_INFO_CLASS
35 WTSInitialProgram,
36 WTSApplicationName,
37 WTSWorkingDirectory,
38 WTSOEMId,
39 WTSSessionId,
40 WTSUserName,
41 WTSWinStationName,
42 WTSDomainName,
43 WTSConnectState,
44 WTSClientBuildNumber,
45 WTSClientName,
46 WTSClientDirectory,
47 WTSClientProductId,
48 WTSClientHardwareId,
49 WTSClientAddress,
50 WTSClientDisplay,
51 WTSClientProtocolType,
52 } WTS_INFO_CLASS;
54 typedef enum _WTS_CONNECTSTATE_CLASS
56 WTSActive,
57 WTSConnected,
58 WTSConnectQuery,
59 WTSShadow,
60 WTSDisconnected,
61 WTSIdle,
62 WTSListen,
63 WTSReset,
64 WTSDown,
65 WTSInit
66 } WTS_CONNECTSTATE_CLASS;
68 typedef enum _WTS_CONFIG_CLASS
70 WTSUserConfigInitialProgram,
71 WTSUserConfigWorkingDirectory,
72 WTSUserConfigInheritInitialProgram,
73 WTSUserConfigAllowLogonTerminalServer,
74 WTSUserConfigTimeoutSettingsConnections,
75 WTSUserConfigTimeoutSettingsDisconnections,
76 WTSUserConfigTimeoutSettingsIdle,
77 WTSUserConfigDeviceClientDrives,
78 WTSUserConfigDeviceClientPrinters,
79 WTSUserConfigDeviceClientDefaultPrinter,
80 WTSUserConfigBrokenTimeoutSettings,
81 WTSUserConfigModemCallbackSettings,
82 WTSUserConfigModemCallbackPhoneNumber,
83 WTSUserConfigShadowSettings,
84 WTSUserConfigTerminalServerProfilePath,
85 WTSUserConfigTerminalServerHomeDirectory,
86 WTSUserConfigfTerminalServerRemoteHomeDir
87 } WTS_CONFIG_CLASS;
89 typedef struct _WTS_PROCESS_INFOA
91 DWORD SessionId;
92 DWORD ProcessId;
93 LPSTR pProcessName;
94 PSID pUserSid;
95 } WTS_PROCESS_INFOA, *PWTS_PROCESS_INFOA;
97 typedef struct _WTS_PROCESS_INFOW
99 DWORD SessionId;
100 DWORD ProcessId;
101 LPWSTR pProcessName;
102 PSID pUserSid;
103 } WTS_PROCESS_INFOW, *PWTS_PROCESS_INFOW;
105 DECL_WINELIB_TYPE_AW(WTS_PROCESS_INFO)
106 DECL_WINELIB_TYPE_AW(PWTS_PROCESS_INFO)
108 typedef struct _WTS_SESSION_INFOA
110 DWORD SessionId;
111 LPSTR pWinStationName;
112 WTS_CONNECTSTATE_CLASS State;
113 } WTS_SESSION_INFOA, *PWTS_SESSION_INFOA;
115 typedef struct _WTS_SESSION_INFOW
117 DWORD SessionId;
118 LPWSTR pWinStationName;
119 WTS_CONNECTSTATE_CLASS State;
120 } WTS_SESSION_INFOW, *PWTS_SESSION_INFOW;
122 DECL_WINELIB_TYPE_AW(WTS_SESSION_INFO)
123 DECL_WINELIB_TYPE_AW(PWTS_SESSION_INFO)
125 typedef struct _WTS_SERVER_INFOA
127 LPSTR pServerName;
128 } WTS_SERVER_INFOA, *PWTS_SERVER_INFOA;
130 typedef struct _WTS_SERVER_INFOW
132 LPWSTR pServerName;
133 } WTS_SERVER_INFOW, *PWTS_SERVER_INFOW;
135 DECL_WINELIB_TYPE_AW(WTS_SERVER_INFO)
136 DECL_WINELIB_TYPE_AW(PWTS_SERVER_INFO)
138 #define WTS_CURRENT_SERVER_HANDLE ((HANDLE)NULL)
140 void WINAPI WTSCloseServer(HANDLE);
141 BOOL WINAPI WTSConnectSessionA(ULONG, ULONG, PSTR, BOOL);
142 BOOL WINAPI WTSConnectSessionW(ULONG, ULONG, PWSTR, BOOL);
143 #define WTSConnectSession WINELIB_NAME_AW(WTSConnectSession)
144 BOOL WINAPI WTSDisconnectSession(HANDLE, DWORD, BOOL);
145 BOOL WINAPI WTSEnableChildSessions(BOOL);
146 BOOL WINAPI WTSEnumerateProcessesA(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOA *, DWORD *);
147 BOOL WINAPI WTSEnumerateProcessesW(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOW *, DWORD *);
148 #define WTSEnumerateProcesses WINELIB_NAME_AW(WTSEnumerateProcesses)
149 BOOL WINAPI WTSEnumerateServersA( LPSTR, DWORD, DWORD, PWTS_SERVER_INFOA*, DWORD*);
150 BOOL WINAPI WTSEnumerateServersW( LPWSTR, DWORD, DWORD, PWTS_SERVER_INFOW*, DWORD*);
151 #define WTSEnumerateServers WINELIB_NAME_AW(WTSEnumerateServers)
152 BOOL WINAPI WTSEnumerateSessionsA(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOA *, DWORD *);
153 BOOL WINAPI WTSEnumerateSessionsW(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOW *, DWORD *);
154 #define WTSEnumerateSessions WINELIB_NAME_AW(WTSEnumerateSessions)
155 void WINAPI WTSFreeMemory(PVOID);
156 HANDLE WINAPI WTSOpenServerA(LPSTR);
157 HANDLE WINAPI WTSOpenServerW(LPWSTR);
158 #define WTSOpenServer WINELIB_NAME_AW(WTSOpenServer)
159 BOOL WINAPI WTSQuerySessionInformationA(HANDLE, DWORD, WTS_INFO_CLASS, LPSTR *, DWORD *);
160 BOOL WINAPI WTSQuerySessionInformationW(HANDLE, DWORD, WTS_INFO_CLASS, LPWSTR *, DWORD *);
161 #define WTSQuerySessionInformation WINELIB_NAME_AW(WTSQuerySessionInformation)
162 BOOL WINAPI WTSQueryUserConfigA(LPSTR,LPSTR,WTS_CONFIG_CLASS,LPSTR*,DWORD*);
163 BOOL WINAPI WTSQueryUserConfigW(LPWSTR,LPWSTR,WTS_CONFIG_CLASS,LPWSTR*,DWORD*);
164 #define WTSQueryUserConfig WINELIB_NAME_AW(WTSQueryUserConfig)
165 BOOL WINAPI WTSQueryUserToken(ULONG, PHANDLE);
166 BOOL WINAPI WTSRegisterSessionNotification(HWND, DWORD);
167 BOOL WINAPI WTSRegisterSessionNotificationEx(HANDLE, HWND, DWORD);
168 BOOL WINAPI WTSStartRemoteControlSessionA(LPSTR, ULONG, BYTE, USHORT);
169 BOOL WINAPI WTSStartRemoteControlSessionW(LPWSTR, ULONG, BYTE, USHORT);
170 #define WTSStartRemoteControlSession WINELIB_NAME_AW(WTSStartRemoteControlSession)
171 BOOL WINAPI WTSStopRemoteControlSession(ULONG);
172 BOOL WINAPI WTSTerminateProcess(HANDLE, DWORD, DWORD);
173 BOOL WINAPI WTSUnRegisterSessionNotification(HWND);
174 BOOL WINAPI WTSUnRegisterSessionNotificationEx(HANDLE, HWND);
175 BOOL WINAPI WTSWaitSystemEvent(HANDLE, DWORD, DWORD*);
177 #ifdef __cplusplus
179 #endif
181 #endif