1 | /**
|
---|
2 | * This file has no copyright assigned and is placed in the Public Domain.
|
---|
3 | * This file is part of the mingw-w64 runtime package.
|
---|
4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
---|
5 | */
|
---|
6 | #ifndef _WINWLX_
|
---|
7 | #define _WINWLX_
|
---|
8 |
|
---|
9 | #define WLX_VERSION_1_0 (0X00010000)
|
---|
10 | #define WLX_VERSION_1_1 (0X00010001)
|
---|
11 | #define WLX_VERSION_1_2 (0X00010002)
|
---|
12 | #define WLX_VERSION_1_3 (0X00010003)
|
---|
13 | #define WLX_VERSION_1_4 (0X00010004)
|
---|
14 | #define WLX_CURRENT_VERSION (WLX_VERSION_1_4)
|
---|
15 |
|
---|
16 | #define WLX_SAS_TYPE_TIMEOUT (0)
|
---|
17 | #define WLX_SAS_TYPE_CTRL_ALT_DEL (1)
|
---|
18 | #define WLX_SAS_TYPE_SCRNSVR_TIMEOUT (2)
|
---|
19 | #define WLX_SAS_TYPE_SCRNSVR_ACTIVITY (3)
|
---|
20 | #define WLX_SAS_TYPE_USER_LOGOFF (4)
|
---|
21 | #define WLX_SAS_TYPE_SC_INSERT (5)
|
---|
22 | #define WLX_SAS_TYPE_SC_REMOVE (6)
|
---|
23 | #define WLX_SAS_TYPE_AUTHENTICATED (7)
|
---|
24 | #define WLX_SAS_TYPE_SC_FIRST_READER_ARRIVED (8)
|
---|
25 | #define WLX_SAS_TYPE_SC_LAST_READER_REMOVED (9)
|
---|
26 | #define WLX_SAS_TYPE_SWITCHUSER (10)
|
---|
27 | #define WLX_SAS_TYPE_MAX_MSFT_VALUE (127)
|
---|
28 |
|
---|
29 | typedef struct _WLX_SC_NOTIFICATION_INFO {
|
---|
30 | PWSTR pszCard;
|
---|
31 | PWSTR pszReader;
|
---|
32 | PWSTR pszContainer;
|
---|
33 | PWSTR pszCryptoProvider;
|
---|
34 | } WLX_SC_NOTIFICATION_INFO,*PWLX_SC_NOTIFICATION_INFO;
|
---|
35 |
|
---|
36 | #define WLX_LOGON_OPT_NO_PROFILE (0x00000001)
|
---|
37 |
|
---|
38 | #define WLX_PROFILE_TYPE_V1_0 (1)
|
---|
39 | #define WLX_PROFILE_TYPE_V2_0 (2)
|
---|
40 |
|
---|
41 | #define WLX_SAS_ACTION_LOGON (1)
|
---|
42 | #define WLX_SAS_ACTION_NONE (2)
|
---|
43 | #define WLX_SAS_ACTION_LOCK_WKSTA (3)
|
---|
44 | #define WLX_SAS_ACTION_LOGOFF (4)
|
---|
45 | #define WLX_SAS_ACTION_SHUTDOWN (5)
|
---|
46 | #define WLX_SAS_ACTION_PWD_CHANGED (6)
|
---|
47 | #define WLX_SAS_ACTION_TASKLIST (7)
|
---|
48 | #define WLX_SAS_ACTION_UNLOCK_WKSTA (8)
|
---|
49 | #define WLX_SAS_ACTION_FORCE_LOGOFF (9)
|
---|
50 | #define WLX_SAS_ACTION_SHUTDOWN_POWER_OFF (10)
|
---|
51 | #define WLX_SAS_ACTION_SHUTDOWN_REBOOT (11)
|
---|
52 | #define WLX_SAS_ACTION_SHUTDOWN_SLEEP (12)
|
---|
53 | #define WLX_SAS_ACTION_SHUTDOWN_SLEEP2 (13)
|
---|
54 | #define WLX_SAS_ACTION_SHUTDOWN_HIBERNATE (14)
|
---|
55 | #define WLX_SAS_ACTION_RECONNECTED (15)
|
---|
56 | #define WLX_SAS_ACTION_DELAYED_FORCE_LOGOFF (16)
|
---|
57 | #define WLX_SAS_ACTION_SWITCH_CONSOLE (17)
|
---|
58 |
|
---|
59 | #define WLX_WM_SAS (WM_USER + 601)
|
---|
60 |
|
---|
61 | #define WLX_DLG_SAS 101
|
---|
62 | #define WLX_DLG_INPUT_TIMEOUT 102
|
---|
63 | #define WLX_DLG_SCREEN_SAVER_TIMEOUT 103
|
---|
64 | #define WLX_DLG_USER_LOGOFF 104
|
---|
65 |
|
---|
66 | typedef struct _WLX_PROFILE_V1_0 {
|
---|
67 | DWORD dwType;
|
---|
68 | PWSTR pszProfile;
|
---|
69 | } WLX_PROFILE_V1_0,*PWLX_PROFILE_V1_0;
|
---|
70 |
|
---|
71 | typedef struct _WLX_PROFILE_V2_0 {
|
---|
72 | DWORD dwType;
|
---|
73 | PWSTR pszProfile;
|
---|
74 | PWSTR pszPolicy;
|
---|
75 | PWSTR pszNetworkDefaultUserProfile;
|
---|
76 | PWSTR pszServerName;
|
---|
77 | PWSTR pszEnvironment;
|
---|
78 | } WLX_PROFILE_V2_0,*PWLX_PROFILE_V2_0;
|
---|
79 |
|
---|
80 | typedef struct _WLX_MPR_NOTIFY_INFO {
|
---|
81 | PWSTR pszUserName;
|
---|
82 | PWSTR pszDomain;
|
---|
83 | PWSTR pszPassword;
|
---|
84 | PWSTR pszOldPassword;
|
---|
85 | } WLX_MPR_NOTIFY_INFO,*PWLX_MPR_NOTIFY_INFO;
|
---|
86 |
|
---|
87 | #define WLX_DIRECTORY_LENGTH 256
|
---|
88 |
|
---|
89 | typedef struct _WLX_TERMINAL_SERVICES_DATA {
|
---|
90 | WCHAR ProfilePath[WLX_DIRECTORY_LENGTH + 1];
|
---|
91 | WCHAR HomeDir[WLX_DIRECTORY_LENGTH + 1];
|
---|
92 | WCHAR HomeDirDrive[4];
|
---|
93 | } WLX_TERMINAL_SERVICES_DATA,*PWLX_TERMINAL_SERVICES_DATA;
|
---|
94 |
|
---|
95 | #define WLX_CREDENTIAL_TYPE_V1_0 (1)
|
---|
96 | #define WLX_CREDENTIAL_TYPE_V2_0 (2)
|
---|
97 |
|
---|
98 | typedef struct _WLX_CLIENT_CREDENTIALS_INFO {
|
---|
99 | DWORD dwType;
|
---|
100 | PWSTR pszUserName;
|
---|
101 | PWSTR pszDomain;
|
---|
102 | PWSTR pszPassword;
|
---|
103 | WINBOOL fPromptForPassword;
|
---|
104 | } WLX_CLIENT_CREDENTIALS_INFO_V1_0,*PWLX_CLIENT_CREDENTIALS_INFO_V1_0;
|
---|
105 |
|
---|
106 | typedef struct _WLX_CLIENT_CREDENTIALS_INFO_2_0 {
|
---|
107 | DWORD dwType;
|
---|
108 | PWSTR pszUserName;
|
---|
109 | PWSTR pszDomain;
|
---|
110 | PWSTR pszPassword;
|
---|
111 | WINBOOL fPromptForPassword;
|
---|
112 | WINBOOL fDisconnectOnLogonFailure;
|
---|
113 | } WLX_CLIENT_CREDENTIALS_INFO_V2_0,*PWLX_CLIENT_CREDENTIALS_INFO_V2_0;
|
---|
114 |
|
---|
115 | #define WLX_CONSOLESWITCHCREDENTIAL_TYPE_V1_0 (1)
|
---|
116 |
|
---|
117 | typedef struct _WLX_CONSOLESWITCH_CREDENTIALS_INFO {
|
---|
118 | DWORD dwType;
|
---|
119 | HANDLE UserToken;
|
---|
120 | LUID LogonId;
|
---|
121 | QUOTA_LIMITS Quotas;
|
---|
122 | PWSTR UserName;
|
---|
123 | PWSTR Domain;
|
---|
124 | LARGE_INTEGER LogonTime;
|
---|
125 | WINBOOL SmartCardLogon;
|
---|
126 | ULONG ProfileLength;
|
---|
127 | DWORD MessageType;
|
---|
128 | USHORT LogonCount;
|
---|
129 | USHORT BadPasswordCount;
|
---|
130 | LARGE_INTEGER ProfileLogonTime;
|
---|
131 | LARGE_INTEGER LogoffTime;
|
---|
132 | LARGE_INTEGER KickOffTime;
|
---|
133 | LARGE_INTEGER PasswordLastSet;
|
---|
134 | LARGE_INTEGER PasswordCanChange;
|
---|
135 | LARGE_INTEGER PasswordMustChange;
|
---|
136 | PWSTR LogonScript;
|
---|
137 | PWSTR HomeDirectory;
|
---|
138 | PWSTR FullName;
|
---|
139 | PWSTR ProfilePath;
|
---|
140 | PWSTR HomeDirectoryDrive;
|
---|
141 | PWSTR LogonServer;
|
---|
142 | ULONG UserFlags;
|
---|
143 | ULONG PrivateDataLen;
|
---|
144 | PBYTE PrivateData;
|
---|
145 | } WLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0,*PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0;
|
---|
146 |
|
---|
147 | WINBOOL WINAPI WlxNegotiate(DWORD dwWinlogonVersion,PDWORD pdwDllVersion);
|
---|
148 | WINBOOL WINAPI WlxInitialize(LPWSTR lpWinsta,HANDLE hWlx,PVOID pvReserved,PVOID pWinlogonFunctions,PVOID *pWlxContext);
|
---|
149 | VOID WINAPI WlxDisplaySASNotice(PVOID pWlxContext);
|
---|
150 | int WINAPI WlxLoggedOutSAS(PVOID pWlxContext,DWORD dwSasType,PLUID pAuthenticationId,PSID pLogonSid,PDWORD pdwOptions,PHANDLE phToken,PWLX_MPR_NOTIFY_INFO pNprNotifyInfo,PVOID *pProfile);
|
---|
151 | WINBOOL WINAPI WlxActivateUserShell(PVOID pWlxContext,PWSTR pszDesktopName,PWSTR pszMprLogonScript,PVOID pEnvironment);
|
---|
152 | int WINAPI WlxLoggedOnSAS(PVOID pWlxContext,DWORD dwSasType,PVOID pReserved);
|
---|
153 | VOID WINAPI WlxDisplayLockedNotice(PVOID pWlxContext);
|
---|
154 | int WINAPI WlxWkstaLockedSAS(PVOID pWlxContext,DWORD dwSasType);
|
---|
155 | WINBOOL WINAPI WlxIsLockOk(PVOID pWlxContext);
|
---|
156 | WINBOOL WINAPI WlxIsLogoffOk(PVOID pWlxContext);
|
---|
157 | VOID WINAPI WlxLogoff(PVOID pWlxContext);
|
---|
158 | VOID WINAPI WlxShutdown(PVOID pWlxContext,DWORD ShutdownType);
|
---|
159 | WINBOOL WINAPI WlxScreenSaverNotify(PVOID pWlxContext,WINBOOL *pSecure);
|
---|
160 | WINBOOL WINAPI WlxStartApplication(PVOID pWlxContext,PWSTR pszDesktopName,PVOID pEnvironment,PWSTR pszCmdLine);
|
---|
161 | WINBOOL WINAPI WlxNetworkProviderLoad(PVOID pWlxContext,PWLX_MPR_NOTIFY_INFO pNprNotifyInfo);
|
---|
162 |
|
---|
163 | #define STATUSMSG_OPTION_NOANIMATION 0x00000001
|
---|
164 | #define STATUSMSG_OPTION_SETFOREGROUND 0x00000002
|
---|
165 |
|
---|
166 | WINBOOL WINAPI WlxDisplayStatusMessage(PVOID pWlxContext,HDESK hDesktop,DWORD dwOptions,PWSTR pTitle,PWSTR pMessage);
|
---|
167 | WINBOOL WINAPI WlxGetStatusMessage(PVOID pWlxContext,DWORD *pdwOptions,PWSTR pMessage,DWORD dwBufferSize);
|
---|
168 | WINBOOL WINAPI WlxRemoveStatusMessage(PVOID pWlxContext);
|
---|
169 | WINBOOL WINAPI WlxGetConsoleSwitchCredentials (PVOID pWlxContext,PVOID pCredInfo);
|
---|
170 | VOID WINAPI WlxReconnectNotify (PVOID pWlxContext);
|
---|
171 | VOID WINAPI WlxDisconnectNotify (PVOID pWlxContext);
|
---|
172 |
|
---|
173 | typedef struct _WLX_DESKTOP {
|
---|
174 | DWORD Size;
|
---|
175 | DWORD Flags;
|
---|
176 | HDESK hDesktop;
|
---|
177 | PWSTR pszDesktopName;
|
---|
178 | } WLX_DESKTOP,*PWLX_DESKTOP;
|
---|
179 |
|
---|
180 | #define WLX_DESKTOP_NAME 0x00000001
|
---|
181 | #define WLX_DESKTOP_HANDLE 0x00000002
|
---|
182 |
|
---|
183 | typedef VOID (WINAPI *PWLX_USE_CTRL_ALT_DEL)(HANDLE hWlx);
|
---|
184 | typedef VOID (WINAPI *PWLX_SET_CONTEXT_POINTER)(HANDLE hWlx,PVOID pWlxContext);
|
---|
185 | typedef VOID (WINAPI *PWLX_SAS_NOTIFY)(HANDLE hWlx,DWORD dwSasType);
|
---|
186 | typedef WINBOOL (WINAPI *PWLX_SET_TIMEOUT)(HANDLE hWlx,DWORD Timeout);
|
---|
187 | typedef int (WINAPI *PWLX_ASSIGN_SHELL_PROTECTION)(HANDLE hWlx,HANDLE hToken,HANDLE hProcess,HANDLE hThread);
|
---|
188 | typedef int (WINAPI *PWLX_MESSAGE_BOX)(HANDLE hWlx,HWND hwndOwner,LPWSTR lpszText,LPWSTR lpszTitle,UINT fuStyle);
|
---|
189 | typedef int (WINAPI *PWLX_DIALOG_BOX)(HANDLE hWlx,HANDLE hInst,LPWSTR lpszTemplate,HWND hwndOwner,DLGPROC dlgprc);
|
---|
190 | typedef int (WINAPI *PWLX_DIALOG_BOX_INDIRECT)(HANDLE hWlx,HANDLE hInst,LPCDLGTEMPLATE hDialogTemplate,HWND hwndOwner,DLGPROC dlgprc);
|
---|
191 | typedef int (WINAPI *PWLX_DIALOG_BOX_PARAM)(HANDLE hWlx,HANDLE hInst,LPWSTR lpszTemplate,HWND hwndOwner,DLGPROC dlgprc,LPARAM dwInitParam);
|
---|
192 | typedef int (WINAPI *PWLX_DIALOG_BOX_INDIRECT_PARAM)(HANDLE hWlx,HANDLE hInst,LPCDLGTEMPLATE hDialogTemplate,HWND hwndOwner,DLGPROC dlgprc,LPARAM dwInitParam);
|
---|
193 | typedef int (WINAPI *PWLX_SWITCH_DESKTOP_TO_USER)(HANDLE hWlx);
|
---|
194 | typedef int (WINAPI *PWLX_SWITCH_DESKTOP_TO_WINLOGON)(HANDLE hWlx);
|
---|
195 | typedef int (WINAPI *PWLX_CHANGE_PASSWORD_NOTIFY)(HANDLE hWlx,PWLX_MPR_NOTIFY_INFO pMprInfo,DWORD dwChangeInfo);
|
---|
196 | typedef WINBOOL (WINAPI *PWLX_GET_SOURCE_DESKTOP)(HANDLE hWlx,PWLX_DESKTOP *ppDesktop);
|
---|
197 | typedef WINBOOL (WINAPI *PWLX_SET_RETURN_DESKTOP)(HANDLE hWlx,PWLX_DESKTOP pDesktop);
|
---|
198 | typedef WINBOOL (WINAPI *PWLX_CREATE_USER_DESKTOP)(HANDLE hWlx,HANDLE hToken,DWORD Flags,PWSTR pszDesktopName,PWLX_DESKTOP *ppDesktop);
|
---|
199 |
|
---|
200 | #define WLX_CREATE_INSTANCE_ONLY 0x00000001
|
---|
201 | #define WLX_CREATE_USER 0x00000002
|
---|
202 |
|
---|
203 | typedef int (WINAPI *PWLX_CHANGE_PASSWORD_NOTIFY_EX)(HANDLE hWlx,PWLX_MPR_NOTIFY_INFO pMprInfo,DWORD dwChangeInfo,PWSTR ProviderName,PVOID Reserved);
|
---|
204 | typedef WINBOOL (WINAPI *PWLX_CLOSE_USER_DESKTOP)(HANDLE hWlx,PWLX_DESKTOP pDesktop,HANDLE hToken);
|
---|
205 | typedef WINBOOL (WINAPI *PWLX_SET_OPTION)(HANDLE hWlx,DWORD Option,ULONG_PTR Value,ULONG_PTR *OldValue);
|
---|
206 | typedef WINBOOL (WINAPI *PWLX_GET_OPTION)(HANDLE hWlx,DWORD Option,ULONG_PTR *Value);
|
---|
207 | typedef VOID (WINAPI *PWLX_WIN31_MIGRATE)(HANDLE hWlx);
|
---|
208 | typedef WINBOOL (WINAPI *PWLX_QUERY_CLIENT_CREDENTIALS)(PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred);
|
---|
209 | typedef WINBOOL (WINAPI *PWLX_QUERY_IC_CREDENTIALS)(PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred);
|
---|
210 | typedef WINBOOL (WINAPI *PWLX_QUERY_TS_LOGON_CREDENTIALS)(PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCred);
|
---|
211 | typedef WINBOOL (WINAPI *PWLX_DISCONNECT)();
|
---|
212 | typedef DWORD (WINAPI *PWLX_QUERY_TERMINAL_SERVICES_DATA)(HANDLE hWlx,PWLX_TERMINAL_SERVICES_DATA pTSData,WCHAR *UserName,WCHAR *Domain);
|
---|
213 | typedef DWORD (WINAPI *PWLX_QUERY_CONSOLESWITCH_CREDENTIALS)(PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 pCred);
|
---|
214 |
|
---|
215 | #define WLX_OPTION_USE_CTRL_ALT_DEL 0x00000001
|
---|
216 | #define WLX_OPTION_CONTEXT_POINTER 0x00000002
|
---|
217 | #define WLX_OPTION_USE_SMART_CARD 0x00000003
|
---|
218 | #define WLX_OPTION_FORCE_LOGOFF_TIME 0x00000004
|
---|
219 | #define WLX_OPTION_IGNORE_AUTO_LOGON 0x00000008
|
---|
220 | #define WLX_OPTION_NO_SWITCH_ON_SAS 0x00000009
|
---|
221 |
|
---|
222 | #define WLX_OPTION_SMART_CARD_PRESENT 0x00010001
|
---|
223 | #define WLX_OPTION_SMART_CARD_INFO 0x00010002
|
---|
224 | #define WLX_OPTION_DISPATCH_TABLE_SIZE 0x00010003
|
---|
225 |
|
---|
226 | typedef struct _WLX_DISPATCH_VERSION_1_0 {
|
---|
227 | PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
|
---|
228 | PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
|
---|
229 | PWLX_SAS_NOTIFY WlxSasNotify;
|
---|
230 | PWLX_SET_TIMEOUT WlxSetTimeout;
|
---|
231 | PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
|
---|
232 | PWLX_MESSAGE_BOX WlxMessageBox;
|
---|
233 | PWLX_DIALOG_BOX WlxDialogBox;
|
---|
234 | PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
|
---|
235 | PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
|
---|
236 | PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
|
---|
237 | PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
|
---|
238 | PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
|
---|
239 | PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
|
---|
240 | } WLX_DISPATCH_VERSION_1_0,*PWLX_DISPATCH_VERSION_1_0;
|
---|
241 |
|
---|
242 | typedef struct _WLX_DISPATCH_VERSION_1_1 {
|
---|
243 | PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
|
---|
244 | PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
|
---|
245 | PWLX_SAS_NOTIFY WlxSasNotify;
|
---|
246 | PWLX_SET_TIMEOUT WlxSetTimeout;
|
---|
247 | PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
|
---|
248 | PWLX_MESSAGE_BOX WlxMessageBox;
|
---|
249 | PWLX_DIALOG_BOX WlxDialogBox;
|
---|
250 | PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
|
---|
251 | PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
|
---|
252 | PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
|
---|
253 | PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
|
---|
254 | PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
|
---|
255 | PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
|
---|
256 | PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
|
---|
257 | PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
|
---|
258 | PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
|
---|
259 | PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
|
---|
260 | } WLX_DISPATCH_VERSION_1_1,*PWLX_DISPATCH_VERSION_1_1;
|
---|
261 |
|
---|
262 | typedef struct _WLX_DISPATCH_VERSION_1_2 {
|
---|
263 | PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
|
---|
264 | PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
|
---|
265 | PWLX_SAS_NOTIFY WlxSasNotify;
|
---|
266 | PWLX_SET_TIMEOUT WlxSetTimeout;
|
---|
267 | PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
|
---|
268 | PWLX_MESSAGE_BOX WlxMessageBox;
|
---|
269 | PWLX_DIALOG_BOX WlxDialogBox;
|
---|
270 | PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
|
---|
271 | PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
|
---|
272 | PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
|
---|
273 | PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
|
---|
274 | PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
|
---|
275 | PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
|
---|
276 | PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
|
---|
277 | PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
|
---|
278 | PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
|
---|
279 | PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
|
---|
280 | PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop;
|
---|
281 | } WLX_DISPATCH_VERSION_1_2,*PWLX_DISPATCH_VERSION_1_2;
|
---|
282 |
|
---|
283 | typedef struct _WLX_DISPATCH_VERSION_1_3 {
|
---|
284 | PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
|
---|
285 | PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
|
---|
286 | PWLX_SAS_NOTIFY WlxSasNotify;
|
---|
287 | PWLX_SET_TIMEOUT WlxSetTimeout;
|
---|
288 | PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
|
---|
289 | PWLX_MESSAGE_BOX WlxMessageBox;
|
---|
290 | PWLX_DIALOG_BOX WlxDialogBox;
|
---|
291 | PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
|
---|
292 | PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
|
---|
293 | PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
|
---|
294 | PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
|
---|
295 | PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
|
---|
296 | PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
|
---|
297 | PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
|
---|
298 | PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
|
---|
299 | PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
|
---|
300 | PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
|
---|
301 | PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop;
|
---|
302 | PWLX_SET_OPTION WlxSetOption;
|
---|
303 | PWLX_GET_OPTION WlxGetOption;
|
---|
304 | PWLX_WIN31_MIGRATE WlxWin31Migrate;
|
---|
305 | PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials;
|
---|
306 | PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials;
|
---|
307 | PWLX_DISCONNECT WlxDisconnect;
|
---|
308 | PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData;
|
---|
309 | } WLX_DISPATCH_VERSION_1_3,*PWLX_DISPATCH_VERSION_1_3;
|
---|
310 |
|
---|
311 | typedef struct _WLX_DISPATCH_VERSION_1_4 {
|
---|
312 | PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
|
---|
313 | PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
|
---|
314 | PWLX_SAS_NOTIFY WlxSasNotify;
|
---|
315 | PWLX_SET_TIMEOUT WlxSetTimeout;
|
---|
316 | PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
|
---|
317 | PWLX_MESSAGE_BOX WlxMessageBox;
|
---|
318 | PWLX_DIALOG_BOX WlxDialogBox;
|
---|
319 | PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
|
---|
320 | PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
|
---|
321 | PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
|
---|
322 | PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
|
---|
323 | PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
|
---|
324 | PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
|
---|
325 | PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
|
---|
326 | PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
|
---|
327 | PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
|
---|
328 | PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
|
---|
329 | PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop;
|
---|
330 | PWLX_SET_OPTION WlxSetOption;
|
---|
331 | PWLX_GET_OPTION WlxGetOption;
|
---|
332 | PWLX_WIN31_MIGRATE WlxWin31Migrate;
|
---|
333 | PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials;
|
---|
334 | PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials;
|
---|
335 | PWLX_DISCONNECT WlxDisconnect;
|
---|
336 | PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData;
|
---|
337 | PWLX_QUERY_CONSOLESWITCH_CREDENTIALS WlxQueryConsoleSwitchCredentials;
|
---|
338 | PWLX_QUERY_TS_LOGON_CREDENTIALS WlxQueryTsLogonCredentials;
|
---|
339 | } WLX_DISPATCH_VERSION_1_4,*PWLX_DISPATCH_VERSION_1_4;
|
---|
340 |
|
---|
341 | typedef DWORD (*PFNMSGECALLBACK)(WINBOOL bVerbose,LPWSTR lpMessage);
|
---|
342 |
|
---|
343 | typedef struct _WLX_NOTIFICATION_INFO {
|
---|
344 | ULONG Size;
|
---|
345 | ULONG Flags;
|
---|
346 | PWSTR UserName;
|
---|
347 | PWSTR Domain;
|
---|
348 | PWSTR WindowStation;
|
---|
349 | HANDLE hToken;
|
---|
350 | HDESK hDesktop;
|
---|
351 | PFNMSGECALLBACK pStatusCallback;
|
---|
352 | } WLX_NOTIFICATION_INFO,*PWLX_NOTIFICATION_INFO;
|
---|
353 | #endif
|
---|