?? winwlx.h
字號:
// The string pointed to by this field must be separately
// allocated and will be separately deallocated by Winlogon.
//
PWSTR pszDomain;
//
// Cleartext password of the user account. If the OldPassword
// field is non-null, then this field contains the new password
// in a password change operation. The string pointed to by
// this field must be separately allocated and will be seperately
// deallocated by Winlogon.
//
PWSTR pszPassword;
//
// Cleartext old password of the user account whose password
// has just been changed. The Password field contains the new
// password. The string pointed to by this field must be
// separately allocated and will be separately deallocated by
// Winlogon.
//
PWSTR pszOldPassword;
} WLX_MPR_NOTIFY_INFO, * PWLX_MPR_NOTIFY_INFO;
////////////////////////////////////////////////////////////////////////
// //
// Services that replacement GINAs ** MUST ** provide //
// //
////////////////////////////////////////////////////////////////////////
BOOL
WINAPI
WlxNegotiate(
DWORD dwWinlogonVersion,
PDWORD pdwDllVersion
);
BOOL
WINAPI
WlxInitialize(
LPWSTR lpWinsta,
HANDLE hWlx,
PVOID pvReserved,
PVOID pWinlogonFunctions,
PVOID * pWlxContext
);
VOID
WINAPI
WlxDisplaySASNotice(
PVOID pWlxContext
);
int
WINAPI
WlxLoggedOutSAS(
PVOID pWlxContext,
DWORD dwSasType,
PLUID pAuthenticationId,
PSID pLogonSid,
PDWORD pdwOptions,
PHANDLE phToken,
PWLX_MPR_NOTIFY_INFO pNprNotifyInfo,
PVOID * pProfile
);
BOOL
WINAPI
WlxActivateUserShell(
PVOID pWlxContext,
PWSTR pszDesktopName,
PWSTR pszMprLogonScript,
PVOID pEnvironment
);
int
WINAPI
WlxLoggedOnSAS(
PVOID pWlxContext,
DWORD dwSasType,
PVOID pReserved
);
VOID
WINAPI
WlxDisplayLockedNotice(
PVOID pWlxContext
);
int
WINAPI
WlxWkstaLockedSAS(
PVOID pWlxContext,
DWORD dwSasType
);
BOOL
WINAPI
WlxIsLockOk(
PVOID pWlxContext
);
BOOL
WINAPI
WlxIsLogoffOk(
PVOID pWlxContext
);
VOID
WINAPI
WlxLogoff(
PVOID pWlxContext
);
VOID
WINAPI
WlxShutdown(
PVOID pWlxContext,
DWORD ShutdownType
);
//
// NEW for version 1.1
//
BOOL
WINAPI
WlxScreenSaverNotify(
PVOID pWlxContext,
BOOL * pSecure);
BOOL
WINAPI
WlxStartApplication(
PVOID pWlxContext,
PWSTR pszDesktopName,
PVOID pEnvironment,
PWSTR pszCmdLine
);
BOOL
WINAPI
WlxNetworkProviderLoad(
PVOID pWlxContext,
PWLX_MPR_NOTIFY_INFO pNprNotifyInfo
);
////////////////////////////////////////////////////////////////////////
// //
// Services that Winlogon provides //
// //
////////////////////////////////////////////////////////////////////////
typedef struct _WLX_DESKTOP {
DWORD Size;
DWORD Flags;
HDESK hDesktop;
PWSTR pszDesktopName;
} WLX_DESKTOP, * PWLX_DESKTOP;
#define WLX_DESKTOP_NAME 0x00000001 // Name present
#define WLX_DESKTOP_HANDLE 0x00000002 // Handle present
typedef VOID
(WINAPI * PWLX_USE_CTRL_ALT_DEL)(
HANDLE hWlx
);
typedef VOID
(WINAPI * PWLX_SET_CONTEXT_POINTER)(
HANDLE hWlx,
PVOID pWlxContext
);
typedef VOID
(WINAPI * PWLX_SAS_NOTIFY)(
HANDLE hWlx,
DWORD dwSasType
);
typedef BOOL
(WINAPI * PWLX_SET_TIMEOUT)(
HANDLE hWlx,
DWORD Timeout);
typedef int
(WINAPI * PWLX_ASSIGN_SHELL_PROTECTION)(
HANDLE hWlx,
HANDLE hToken,
HANDLE hProcess,
HANDLE hThread
);
typedef int
(WINAPI * PWLX_MESSAGE_BOX)(
HANDLE hWlx,
HWND hwndOwner,
LPWSTR lpszText,
LPWSTR lpszTitle,
UINT fuStyle
);
typedef int
(WINAPI * PWLX_DIALOG_BOX)(
HANDLE hWlx,
HANDLE hInst,
LPWSTR lpszTemplate,
HWND hwndOwner,
DLGPROC dlgprc
);
typedef int
(WINAPI * PWLX_DIALOG_BOX_INDIRECT)(
HANDLE hWlx,
HANDLE hInst,
LPCDLGTEMPLATE hDialogTemplate,
HWND hwndOwner,
DLGPROC dlgprc
);
typedef int
(WINAPI * PWLX_DIALOG_BOX_PARAM)(
HANDLE hWlx,
HANDLE hInst,
LPWSTR lpszTemplate,
HWND hwndOwner,
DLGPROC dlgprc,
LPARAM dwInitParam
);
typedef int
(WINAPI * PWLX_DIALOG_BOX_INDIRECT_PARAM)(
HANDLE hWlx,
HANDLE hInst,
LPCDLGTEMPLATE hDialogTemplate,
HWND hwndOwner,
DLGPROC dlgprc,
LPARAM dwInitParam
);
typedef int
(WINAPI * PWLX_SWITCH_DESKTOP_TO_USER)(
HANDLE hWlx);
typedef int
(WINAPI * PWLX_SWITCH_DESKTOP_TO_WINLOGON)(
HANDLE hWlx);
typedef int
(WINAPI * PWLX_CHANGE_PASSWORD_NOTIFY)(
HANDLE hWlx,
PWLX_MPR_NOTIFY_INFO pMprInfo,
DWORD dwChangeInfo
);
typedef BOOL
(WINAPI * PWLX_GET_SOURCE_DESKTOP)(
HANDLE hWlx,
PWLX_DESKTOP * ppDesktop);
typedef BOOL
(WINAPI * PWLX_SET_RETURN_DESKTOP)(
HANDLE hWlx,
PWLX_DESKTOP pDesktop);
typedef BOOL
(WINAPI * PWLX_CREATE_USER_DESKTOP)(
HANDLE hWlx,
HANDLE hToken,
DWORD Flags,
PWSTR pszDesktopName,
PWLX_DESKTOP * ppDesktop);
#define WLX_CREATE_INSTANCE_ONLY 0x00000001
#define WLX_CREATE_USER 0x00000002
typedef int
(WINAPI * PWLX_CHANGE_PASSWORD_NOTIFY_EX)(
HANDLE hWlx,
PWLX_MPR_NOTIFY_INFO pMprInfo,
DWORD dwChangeInfo,
PWSTR ProviderName,
PVOID Reserved);
////////////////////////////////////////////////////////////////////////
// //
// Function dispatch tables. //
// One of the following tables will be passed to the GINA DLL //
// in the WlxInitialize() call during initialization. //
// //
// NOTE: FOR THIS REVISION THERE IS ONLY ONE TABLE. DEVELOPERS //
// SHOULD EXPECT MORE IN FUTURE RELEASE. //
// //
////////////////////////////////////////////////////////////////////////
//
// Dispatch table for version WLX_VERSION_1_0
//
typedef struct _WLX_DISPATCH_VERSION_1_0 {
PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
PWLX_SAS_NOTIFY WlxSasNotify;
PWLX_SET_TIMEOUT WlxSetTimeout;
PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
PWLX_MESSAGE_BOX WlxMessageBox;
PWLX_DIALOG_BOX WlxDialogBox;
PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
} WLX_DISPATCH_VERSION_1_0, *PWLX_DISPATCH_VERSION_1_0;
typedef struct _WLX_DISPATCH_VERSION_1_1 {
PWLX_USE_CTRL_ALT_DEL WlxUseCtrlAltDel;
PWLX_SET_CONTEXT_POINTER WlxSetContextPointer;
PWLX_SAS_NOTIFY WlxSasNotify;
PWLX_SET_TIMEOUT WlxSetTimeout;
PWLX_ASSIGN_SHELL_PROTECTION WlxAssignShellProtection;
PWLX_MESSAGE_BOX WlxMessageBox;
PWLX_DIALOG_BOX WlxDialogBox;
PWLX_DIALOG_BOX_PARAM WlxDialogBoxParam;
PWLX_DIALOG_BOX_INDIRECT WlxDialogBoxIndirect;
PWLX_DIALOG_BOX_INDIRECT_PARAM WlxDialogBoxIndirectParam;
PWLX_SWITCH_DESKTOP_TO_USER WlxSwitchDesktopToUser;
PWLX_SWITCH_DESKTOP_TO_WINLOGON WlxSwitchDesktopToWinlogon;
PWLX_CHANGE_PASSWORD_NOTIFY WlxChangePasswordNotify;
PWLX_GET_SOURCE_DESKTOP WlxGetSourceDesktop;
PWLX_SET_RETURN_DESKTOP WlxSetReturnDesktop;
PWLX_CREATE_USER_DESKTOP WlxCreateUserDesktop;
PWLX_CHANGE_PASSWORD_NOTIFY_EX WlxChangePasswordNotifyEx;
} WLX_DISPATCH_VERSION_1_1, * PWLX_DISPATCH_VERSION_1_1;
#endif /* _WINWLX_ */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -