winwlx.h 15 KB

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