28#define WLX_VERSION_1_0 0x00010000
29#define WLX_VERSION_1_1 0x00010001
30#define WLX_VERSION_1_2 0x00010002
31#define WLX_VERSION_1_3 0x00010003
32#define WLX_VERSION_1_4 0x00010004
33#define WLX_CURRENT_VERSION (WLX_VERSION_1_4)
35#define WLX_SAS_TYPE_TIMEOUT 0x0000
36#define WLX_SAS_TYPE_CTRL_ALT_DEL 0x0001
37#define WLX_SAS_TYPE_SCRNSVR_TIMEOUT 0x0002
38#define WLX_SAS_TYPE_SCRNSVR_ACTIVITY 0x0003
39#define WLX_SAS_TYPE_USER_LOGOFF 0x0004
40#define WLX_SAS_TYPE_SC_INSERT 0x0005
41#define WLX_SAS_TYPE_SC_REMOVE 0x0006
42#define WLX_SAS_TYPE_AUTHENTICATED 0x0007
43#define WLX_SAS_TYPE_SC_FIRST_READER_ARRIVED 0x0008
44#define WLX_SAS_TYPE_SC_LAST_READER_REMOVED 0x0009
45#define WLX_SAS_TYPE_SWITCHUSER 0x000A
46#define WLX_SAS_TYPE_MAX_MSFT_VALUE 0x007F
48#define WLX_LOGON_OPT_NO_PROFILE 0x0001
50#define WLX_PROFILE_TYPE_V1_0 0x0001
51#define WLX_PROFILE_TYPE_V2_0 0x0002
53#define WLX_SAS_ACTION_LOGON 0x0001
54#define WLX_SAS_ACTION_NONE 0x0002
55#define WLX_SAS_ACTION_LOCK_WKSTA 0x0003
56#define WLX_SAS_ACTION_LOGOFF 0x0004
57#define WLX_SAS_ACTION_SHUTDOWN 0x0005
58#define WLX_SAS_ACTION_PWD_CHANGED 0x0006
59#define WLX_SAS_ACTION_TASKLIST 0x0007
60#define WLX_SAS_ACTION_UNLOCK_WKSTA 0x0008
61#define WLX_SAS_ACTION_FORCE_LOGOFF 0x0009
62#define WLX_SAS_ACTION_SHUTDOWN_POWER_OFF 0x000A
63#define WLX_SAS_ACTION_SHUTDOWN_REBOOT 0x000B
64#define WLX_SAS_ACTION_SHUTDOWN_SLEEP 0x000C
65#define WLX_SAS_ACTION_SHUTDOWN_SLEEP2 0x000D
66#define WLX_SAS_ACTION_SHUTDOWN_HIBERNATE 0x000E
67#define WLX_SAS_ACTION_RECONNECTED 0x000F
68#define WLX_SAS_ACTION_DELAYED_FORCE_LOGOFF 0x0010
69#define WLX_SAS_ACTION_SWITCH_CONSOLE 0x0011
71#define WLX_WM_SAS (WM_USER + 0x0259)
73#define WLX_DLG_SAS 0x0065
74#define WLX_DLG_INPUT_TIMEOUT 0x0066
75#define WLX_DLG_SCREEN_SAVER_TIMEOUT 0x0067
76#define WLX_DLG_USER_LOGOFF 0x0068
78#define WLX_DIRECTORY_LENGTH 0x0100
80#define WLX_CREDENTIAL_TYPE_V1_0 0x0001
81#define WLX_CREDENTIAL_TYPE_V2_0 0x0002
83#define WLX_CONSOLESWITCHCREDENTIAL_TYPE_V1_0 0x0001
85#define STATUSMSG_OPTION_NOANIMATION 0x0001
86#define STATUSMSG_OPTION_SETFOREGROUND 0x0002
316#define WLX_DESKTOP_NAME 0x0001
317#define WLX_DESKTOP_HANDLE 0x0002
319#define WLX_CREATE_INSTANCE_ONLY 0x0001
320#define WLX_CREATE_USER 0x0002
322#define WLX_OPTION_USE_CTRL_ALT_DEL 0x0001
323#define WLX_OPTION_CONTEXT_POINTER 0x0002
324#define WLX_OPTION_USE_SMART_CARD 0x0003
325#define WLX_OPTION_FORCE_LOGOFF_TIME 0x0004
326#define WLX_OPTION_IGNORE_AUTO_LOGON 0x0008
327#define WLX_OPTION_NO_SWITCH_ON_SAS 0x0009
329#define WLX_OPTION_SMART_CARD_PRESENT 0x00010001
330#define WLX_OPTION_SMART_CARD_INFO 0x00010002
331#define WLX_OPTION_DISPATCH_TABLE_SIZE 0x00010003
_In_ BOOL _In_ HANDLE hProcess
static LPCSTR DWORD void * pvReserved
BOOL fDisconnectOnLogonFailure
LARGE_INTEGER PasswordMustChange
LARGE_INTEGER PasswordCanChange
LARGE_INTEGER ProfileLogonTime
LARGE_INTEGER KickOffTime
LARGE_INTEGER PasswordLastSet
PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon
PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect
PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam
PWLX_SAS_NOTIFY WlxSasNotify
PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel
PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam
PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser
PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection
PWLX_SET_CONTEXT_POINTER WlxSetContextPointer
PWLX_MESSAGE_BOX WlxMessageBox
PWLX_SET_TIMEOUT WlxSetTimeout
PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify
PWLX_DIALOG_BOX WlxDialogBox
PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx
PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam
PWLX_SET_TIMEOUT WlxSetTimeout
PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser
PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect
PWLX_SAS_NOTIFY WlxSasNotify
PWLX_MESSAGE_BOX WlxMessageBox
PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection
PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop
PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel
PWLX_DIALOG_BOX WlxDialogBox
PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify
PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop
PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon
PWLX_SET_CONTEXT_POINTER WlxSetContextPointer
PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam
PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop
PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx
PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop
PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop
PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser
PWLX_MESSAGE_BOX WlxMessageBox
PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop
PWLX_SET_TIMEOUT WlxSetTimeout
PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon
PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam
PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify
PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection
PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop
PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam
PWLX_SAS_NOTIFY WlxSasNotify
PWLX_DIALOG_BOX WlxDialogBox
PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect
PWLX_SET_CONTEXT_POINTER WlxSetContextPointer
PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel
PWLX_DIALOG_BOX WlxDialogBox
PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop
PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection
PWLX_SET_TIMEOUT WlxSetTimeout
PWLX_SET_OPTION WlxSetOption
PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData
PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam
PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser
PWLX_SAS_NOTIFY WlxSasNotify
PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect
PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx
PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop
PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials
PWLX_WIN31_MIGRATE WlxWin31Migrate
PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam
PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop
PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials
PWLX_DISCONNECT WlxDisconnect
PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel
PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify
PWLX_MESSAGE_BOX WlxMessageBox
PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop
PWLX_GET_OPTION WlxGetOption
PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon
PWLX_SET_CONTEXT_POINTER WlxSetContextPointer
PWLX_DISCONNECT WlxDisconnect
PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop
PWLX_SET_TIMEOUT WlxSetTimeout
PWLX_QUERY_IC_CREDENTIALS WlxQueryInetConnectorCredentials
PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop
PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop
PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx
PWLX_CLOSE_USER_DESKTOP WlxCloseUserDesktop
PWLX_SET_OPTION WlxSetOption
PWLX_DIALOG_BOX WlxDialogBox
PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser
PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam
PWLX_WIN31_MIGRATE WlxWin31Migrate
PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon
PWLX_MESSAGE_BOX WlxMessageBox
PWLX_SAS_NOTIFY WlxSasNotify
PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel
PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect
PWLX_QUERY_TERMINAL_SERVICES_DATA WlxQueryTerminalServicesData
PWLX_QUERY_TS_LOGON_CREDENTIALS WlxQueryTsLogonCredentials
PWLX_GET_OPTION WlxGetOption
PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection
PWLX_QUERY_CONSOLESWITCH_CREDENTIALS WlxQueryConsoleSwitchCredentials
PWLX_SET_CONTEXT_POINTER WlxSetContextPointer
PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify
PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam
PWLX_QUERY_CLIENT_CREDENTIALS WlxQueryClientCredentials
PFNMSGECALLBACK pStatusCallback
PWSTR pszNetworkDefaultUserProfile
WCHAR HomeDir[WLX_DIRECTORY_LENGTH+1]
WCHAR ProfilePath[WLX_DIRECTORY_LENGTH+1]
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_In_opt_ LPSTR _In_opt_ LPSTR _In_ DWORD _In_ DWORD _Out_opt_ PHANDLE phToken
_Reserved_ PVOID Reserved
BOOL WINAPI WlxScreenSaverNotify(_In_ PVOID pWlxContext, _Inout_ BOOL *pSecure)
INT(WINAPI * PWLX_CHANGE_PASSWORD_NOTIFY_EX)(_In_ HANDLE hWlx, _In_ PWLX_MPR_NOTIFY_INFO pMprInfo, _In_ DWORD dwChangeInfo, _In_ PWSTR ProviderName, _In_ PVOID Reserved)
struct _WLX_PROFILE_V2_0 * PWLX_PROFILE_V2_0
INT(WINAPI * PWLX_MESSAGE_BOX)(_In_ HANDLE hWlx, _In_ HWND hwndOwner, _In_ LPWSTR lpszText, _In_ LPWSTR lpszTitle, _In_ UINT fuStyle)
DWORD(CALLBACK * PFNMSGECALLBACK)(_In_ BOOL bVerbose, _In_ LPWSTR lpMessage)
struct _WLX_TERMINAL_SERVICES_DATA * PWLX_TERMINAL_SERVICES_DATA
struct _WLX_CONSOLESWITCH_CREDENTIALS_INFO * PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0
VOID WINAPI WlxShutdown(_In_ PVOID pWlxContext, _In_ DWORD ShutdownType)
struct _WLX_MPR_NOTIFY_INFO WLX_MPR_NOTIFY_INFO
struct _WLX_DESKTOP WLX_DESKTOP
struct _WLX_CLIENT_CREDENTIALS_INFO_2_0 WLX_CLIENT_CREDENTIALS_INFO_V2_0
BOOL WINAPI WlxGetStatusMessage(_In_ PVOID pWlxContext, _Out_ DWORD *pdwOptions, _Out_ PWSTR pMessage, _In_ DWORD dwBufferSize)
struct _WLX_PROFILE_V1_0 * PWLX_PROFILE_V1_0
BOOL(WINAPI * PWLX_GET_OPTION)(_In_ HANDLE hWlx, _In_ DWORD Option, _Out_ ULONG_PTR *Value)
BOOL(WINAPI * PWLX_DISCONNECT)(VOID)
struct _WLX_DESKTOP * PWLX_DESKTOP
VOID(WINAPI * PWLX_SET_CONTEXT_POINTER)(_In_ HANDLE hWlx, _In_ PVOID pWlxContext)
INT(WINAPI * PWLX_SWITCH_DESKTOP_TO_USER)(_In_ HANDLE hWlx)
struct _WLX_CLIENT_CREDENTIALS_INFO * PWLX_CLIENT_CREDENTIALS_INFO_V1_0
struct _WLX_DISPATCH_VERSION_1_3 * PWLX_DISPATCH_VERSION_1_3
VOID(WINAPI * PWLX_SAS_NOTIFY)(_In_ HANDLE hWlx, _In_ DWORD dwSasType)
struct _WLX_DISPATCH_VERSION_1_4 * PWLX_DISPATCH_VERSION_1_4
INT(WINAPI * PWLX_CHANGE_PASSWORD_NOTIFY)(_In_ HANDLE hWlx, _In_ PWLX_MPR_NOTIFY_INFO pMprInfo, _In_ DWORD dwChangeInfo)
BOOL WINAPI WlxStartApplication(_In_ PVOID pWlxContext, _In_ PWSTR pszDesktopName, _In_ PVOID pEnvironment, _In_ PWSTR pszCmdLine)
BOOL(WINAPI * PWLX_QUERY_IC_CREDENTIALS)(_Out_ PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred)
BOOL(WINAPI * PWLX_SET_OPTION)(_In_ HANDLE hWlx, _In_ DWORD Option, _In_ ULONG_PTR Value, _Out_ ULONG_PTR *OldValue)
struct _WLX_DISPATCH_VERSION_1_1 * PWLX_DISPATCH_VERSION_1_1
INT(WINAPI * PWLX_DIALOG_BOX)(_In_ HANDLE hWlx, _In_ HANDLE hInst, _In_ LPWSTR lpszTemplate, _In_ HWND hwndOwner, _In_ DLGPROC dlgprc)
BOOL WINAPI WlxRemoveStatusMessage(_In_ PVOID pWlxContext)
BOOL(WINAPI * PWLX_SET_TIMEOUT)(_In_ HANDLE hWlx, _In_ DWORD Timeout)
INT WINAPI WlxLoggedOnSAS(_In_ PVOID pWlxContext, _In_ DWORD dwSasType, _In_ PVOID pReserved)
BOOL WINAPI WlxDisplayStatusMessage(_In_ PVOID pWlxContext, _In_ HDESK hDesktop, _In_ DWORD dwOptions, _In_ PWSTR pTitle, _In_ PWSTR pMessage)
BOOL WINAPI WlxNetworkProviderLoad(_In_ PVOID pWlxContext, _Out_ PWLX_MPR_NOTIFY_INFO pNprNotifyInfo)
BOOL(WINAPI * PWLX_GET_SOURCE_DESKTOP)(_In_ HANDLE hWlx, _Out_ PWLX_DESKTOP *ppDesktop)
INT WINAPI WlxLoggedOutSAS(_In_ PVOID pWlxContext, _In_ DWORD dwSasType, _Out_ PLUID pAuthenticationId, _Inout_ PSID pLogonSid, _Out_ PDWORD pdwOptions, _Out_ PHANDLE phToken, _Out_ PWLX_MPR_NOTIFY_INFO pNprNotifyInfo, _Out_ PVOID *pProfile)
BOOL WINAPI WlxIsLockOk(_In_ PVOID pWlxContext)
struct _WLX_CLIENT_CREDENTIALS_INFO_2_0 * PWLX_CLIENT_CREDENTIALS_INFO_V2_0
struct _WLX_DISPATCH_VERSION_1_3 WLX_DISPATCH_VERSION_1_3
DWORD(WINAPI * PWLX_QUERY_CONSOLESWITCH_CREDENTIALS)(_Out_ PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 pCred)
INT(WINAPI * PWLX_SWITCH_DESKTOP_TO_WINLOGON)(_In_ HANDLE hWlx)
VOID WINAPI WlxDisplayLockedNotice(_In_ PVOID pWlxContext)
BOOL(WINAPI * PWLX_QUERY_TS_LOGON_CREDENTIALS)(_Out_ PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCred)
struct _WLX_CLIENT_CREDENTIALS_INFO WLX_CLIENT_CREDENTIALS_INFO_V1_0
VOID WINAPI WlxReconnectNotify(_In_ PVOID pWlxContext)
BOOL WINAPI WlxActivateUserShell(_In_ PVOID pWlxContext, _In_ PWSTR pszDesktopName, _In_ PWSTR pszMprLogonScript, _In_ PVOID pEnvironment)
DWORD(WINAPI * PWLX_QUERY_TERMINAL_SERVICES_DATA)(_In_ HANDLE hWlx, _Out_ PWLX_TERMINAL_SERVICES_DATA pTSData, _In_ WCHAR *UserName, _In_ WCHAR *Domain)
BOOL WINAPI WlxGetConsoleSwitchCredentials(_In_ PVOID pWlxContext, _Out_ PVOID pCredInfo)
struct _WLX_NOTIFICATION_INFO * PWLX_NOTIFICATION_INFO
INT(WINAPI * PWLX_ASSIGN_SHELL_PROTECTION)(_In_ HANDLE hWlx, _In_ HANDLE hToken, _In_ HANDLE hProcess, _In_ HANDLE hThread)
VOID(WINAPI * PWLX_WIN31_MIGRATE)(_In_ HANDLE hWlx)
struct _WLX_MPR_NOTIFY_INFO * PWLX_MPR_NOTIFY_INFO
struct _WLX_PROFILE_V1_0 WLX_PROFILE_V1_0
struct _WLX_SC_NOTIFICATION_INFO WLX_SC_NOTIFICATION_INFO
BOOL WINAPI WlxIsLogoffOk(_In_ PVOID pWlxContext)
INT(WINAPI * PWLX_DIALOG_BOX_INDIRECT_PARAM)(_In_ HANDLE hWlx, _In_ HANDLE hInst, _In_ LPCDLGTEMPLATE hDialogTemplate, _In_ HWND hwndOwner, _In_ DLGPROC dlgprc, _In_ LPARAM dwInitParam)
VOID WINAPI WlxDisplaySASNotice(_In_ PVOID pWlxContext)
BOOL(WINAPI * PWLX_SET_RETURN_DESKTOP)(_In_ HANDLE hWlx, _In_ PWLX_DESKTOP pDesktop)
INT(WINAPI * PWLX_DIALOG_BOX_PARAM)(_In_ HANDLE hWlx, _In_ HANDLE hInst, _In_ LPWSTR lpszTemplate, _In_ HWND hwndOwner, _In_ DLGPROC dlgprc, _In_ LPARAM dwInitParam)
BOOL(WINAPI * PWLX_QUERY_CLIENT_CREDENTIALS)(_Out_ PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred)
struct _WLX_CONSOLESWITCH_CREDENTIALS_INFO WLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0
VOID WINAPI WlxDisconnectNotify(_In_ PVOID pWlxContext)
struct _WLX_PROFILE_V2_0 WLX_PROFILE_V2_0
struct _WLX_DISPATCH_VERSION_1_0 WLX_DISPATCH_VERSION_1_0
VOID(WINAPI * PWLX_USE_CTRL_ALT_DEL)(_In_ HANDLE hWlx)
BOOL(WINAPI * PWLX_CREATE_USER_DESKTOP)(_In_ HANDLE hWlx, _In_ HANDLE hToken, _In_ DWORD Flags, _In_ PWSTR pszDesktopName, _Out_ PWLX_DESKTOP *ppDesktop)
struct _WLX_DISPATCH_VERSION_1_0 * PWLX_DISPATCH_VERSION_1_0
struct _WLX_NOTIFICATION_INFO WLX_NOTIFICATION_INFO
struct _WLX_DISPATCH_VERSION_1_1 WLX_DISPATCH_VERSION_1_1
struct _WLX_DISPATCH_VERSION_1_2 WLX_DISPATCH_VERSION_1_2
struct _WLX_SC_NOTIFICATION_INFO * PWLX_SC_NOTIFICATION_INFO
struct _WLX_TERMINAL_SERVICES_DATA WLX_TERMINAL_SERVICES_DATA
struct _WLX_DISPATCH_VERSION_1_4 WLX_DISPATCH_VERSION_1_4
VOID WINAPI WlxLogoff(_In_ PVOID pWlxContext)
BOOL WINAPI WlxNegotiate(_In_ DWORD dwWinlogonVersion, _Out_ PDWORD pdwDllVersion)
struct _WLX_DISPATCH_VERSION_1_2 * PWLX_DISPATCH_VERSION_1_2
BOOL(WINAPI * PWLX_CLOSE_USER_DESKTOP)(_In_ HANDLE hWlx, _In_ PWLX_DESKTOP pDesktop, _In_ HANDLE hToken)
BOOL WINAPI WlxInitialize(_In_ LPWSTR lpWinsta, _In_ HANDLE hWlx, _In_ PVOID pvReserved, _In_ PVOID pWinlogonFunctions, _Out_ PVOID *pWlxContext)
INT(WINAPI * PWLX_DIALOG_BOX_INDIRECT)(_In_ HANDLE hWlx, _In_ HANDLE hInst, _In_ LPCDLGTEMPLATE hDialogTemplate, _In_ HWND hwndOwner, _In_ DLGPROC dlgprc)
#define WLX_DIRECTORY_LENGTH
INT WINAPI WlxWkstaLockedSAS(_In_ PVOID pWlxContext, _In_ DWORD dwSasType)
_Must_inspect_result_ _In_ ULONG Flags