mfplat: Read queue subscriber within the critical section.
[wine/zf.git] / include / wtsapi32.h
blobd9b40ca519cf33495a4164f1015a45412b308f25
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 enum _WTS_TYPE_CLASS
91 WTSTypeProcessInfoLevel0,
92 WTSTypeProcessInfoLevel1,
93 WTSTypeSessionInfoLevel1
94 } WTS_TYPE_CLASS;
96 typedef struct _WTS_PROCESS_INFOA
98 DWORD SessionId;
99 DWORD ProcessId;
100 LPSTR pProcessName;
101 PSID pUserSid;
102 } WTS_PROCESS_INFOA, *PWTS_PROCESS_INFOA;
104 typedef struct _WTS_PROCESS_INFOW
106 DWORD SessionId;
107 DWORD ProcessId;
108 LPWSTR pProcessName;
109 PSID pUserSid;
110 } WTS_PROCESS_INFOW, *PWTS_PROCESS_INFOW;
112 DECL_WINELIB_TYPE_AW(WTS_PROCESS_INFO)
113 DECL_WINELIB_TYPE_AW(PWTS_PROCESS_INFO)
115 typedef struct _WTS_SESSION_INFOA
117 DWORD SessionId;
118 LPSTR pWinStationName;
119 WTS_CONNECTSTATE_CLASS State;
120 } WTS_SESSION_INFOA, *PWTS_SESSION_INFOA;
122 typedef struct _WTS_SESSION_INFOW
124 DWORD SessionId;
125 LPWSTR pWinStationName;
126 WTS_CONNECTSTATE_CLASS State;
127 } WTS_SESSION_INFOW, *PWTS_SESSION_INFOW;
129 DECL_WINELIB_TYPE_AW(WTS_SESSION_INFO)
130 DECL_WINELIB_TYPE_AW(PWTS_SESSION_INFO)
132 typedef struct _WTS_SESSION_INFO_1A
134 DWORD ExecEnvId;
135 WTS_CONNECTSTATE_CLASS State;
136 DWORD SessionId;
137 char *pSessionName;
138 char *pHostName;
139 char *pUserName;
140 char *pDomainName;
141 char *pFarmName;
142 } WTS_SESSION_INFO_1A, *PWTS_SESSION_INFO_1A;
144 typedef struct _WTS_SESSION_INFO_1W
146 DWORD ExecEnvId;
147 WTS_CONNECTSTATE_CLASS State;
148 DWORD SessionId;
149 WCHAR *pSessionName;
150 WCHAR *pHostName;
151 WCHAR *pUserName;
152 WCHAR *pDomainName;
153 WCHAR *pFarmName;
154 } WTS_SESSION_INFO_1W, *PWTS_SESSION_INFO_1W;
156 DECL_WINELIB_TYPE_AW(WTS_SESSION_INFO_1)
157 DECL_WINELIB_TYPE_AW(PWTS_SESSION_INFO_1)
159 typedef struct _WTS_SERVER_INFOA
161 LPSTR pServerName;
162 } WTS_SERVER_INFOA, *PWTS_SERVER_INFOA;
164 typedef struct _WTS_SERVER_INFOW
166 LPWSTR pServerName;
167 } WTS_SERVER_INFOW, *PWTS_SERVER_INFOW;
169 DECL_WINELIB_TYPE_AW(WTS_SERVER_INFO)
170 DECL_WINELIB_TYPE_AW(PWTS_SERVER_INFO)
172 #define WTS_CURRENT_SERVER_HANDLE ((HANDLE)NULL)
173 #define WTS_CURRENT_SESSION (~0u)
175 void WINAPI WTSCloseServer(HANDLE);
176 BOOL WINAPI WTSConnectSessionA(ULONG, ULONG, PSTR, BOOL);
177 BOOL WINAPI WTSConnectSessionW(ULONG, ULONG, PWSTR, BOOL);
178 #define WTSConnectSession WINELIB_NAME_AW(WTSConnectSession)
179 BOOL WINAPI WTSDisconnectSession(HANDLE, DWORD, BOOL);
180 BOOL WINAPI WTSEnableChildSessions(BOOL);
181 BOOL WINAPI WTSEnumerateProcessesA(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOA *, DWORD *);
182 BOOL WINAPI WTSEnumerateProcessesW(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOW *, DWORD *);
183 #define WTSEnumerateProcesses WINELIB_NAME_AW(WTSEnumerateProcesses)
184 BOOL WINAPI WTSEnumerateServersA( LPSTR, DWORD, DWORD, PWTS_SERVER_INFOA*, DWORD*);
185 BOOL WINAPI WTSEnumerateServersW( LPWSTR, DWORD, DWORD, PWTS_SERVER_INFOW*, DWORD*);
186 #define WTSEnumerateServers WINELIB_NAME_AW(WTSEnumerateServers)
187 BOOL WINAPI WTSEnumerateSessionsA(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOA *, DWORD *);
188 BOOL WINAPI WTSEnumerateSessionsW(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOW *, DWORD *);
189 #define WTSEnumerateSessions WINELIB_NAME_AW(WTSEnumerateSessions)
190 void WINAPI WTSFreeMemory(PVOID);
191 HANDLE WINAPI WTSOpenServerA(LPSTR);
192 HANDLE WINAPI WTSOpenServerW(LPWSTR);
193 #define WTSOpenServer WINELIB_NAME_AW(WTSOpenServer)
194 BOOL WINAPI WTSQuerySessionInformationA(HANDLE, DWORD, WTS_INFO_CLASS, LPSTR *, DWORD *);
195 BOOL WINAPI WTSQuerySessionInformationW(HANDLE, DWORD, WTS_INFO_CLASS, LPWSTR *, DWORD *);
196 #define WTSQuerySessionInformation WINELIB_NAME_AW(WTSQuerySessionInformation)
197 BOOL WINAPI WTSQueryUserConfigA(LPSTR,LPSTR,WTS_CONFIG_CLASS,LPSTR*,DWORD*);
198 BOOL WINAPI WTSQueryUserConfigW(LPWSTR,LPWSTR,WTS_CONFIG_CLASS,LPWSTR*,DWORD*);
199 #define WTSQueryUserConfig WINELIB_NAME_AW(WTSQueryUserConfig)
200 BOOL WINAPI WTSQueryUserToken(ULONG, PHANDLE);
201 BOOL WINAPI WTSRegisterSessionNotification(HWND, DWORD);
202 BOOL WINAPI WTSRegisterSessionNotificationEx(HANDLE, HWND, DWORD);
203 BOOL WINAPI WTSStartRemoteControlSessionA(LPSTR, ULONG, BYTE, USHORT);
204 BOOL WINAPI WTSStartRemoteControlSessionW(LPWSTR, ULONG, BYTE, USHORT);
205 #define WTSStartRemoteControlSession WINELIB_NAME_AW(WTSStartRemoteControlSession)
206 BOOL WINAPI WTSStopRemoteControlSession(ULONG);
207 BOOL WINAPI WTSTerminateProcess(HANDLE, DWORD, DWORD);
208 BOOL WINAPI WTSUnRegisterSessionNotification(HWND);
209 BOOL WINAPI WTSUnRegisterSessionNotificationEx(HANDLE, HWND);
210 BOOL WINAPI WTSWaitSystemEvent(HANDLE, DWORD, DWORD*);
212 #ifdef __cplusplus
214 #endif
216 #endif