mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
4.3 KiB
159 lines
4.3 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1993.
|
|
//
|
|
// File: ginamgr.h
|
|
//
|
|
// Contents:
|
|
//
|
|
// Classes:
|
|
//
|
|
// Functions:
|
|
//
|
|
// History: 10-24-94 RichardW Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
#ifdef TYPES_ONLY
|
|
|
|
typedef
|
|
BOOL (WINAPI * PWLX_NEGOTIATE)(
|
|
DWORD, DWORD *);
|
|
|
|
typedef
|
|
BOOL (WINAPI * PWLX_INITIALIZE)(
|
|
LPWSTR, HANDLE, PVOID, PVOID, PVOID *);
|
|
|
|
typedef
|
|
VOID (WINAPI * PWLX_DISPLAYSASNOTICE)(
|
|
PVOID );
|
|
|
|
typedef
|
|
int (WINAPI * PWLX_LOGGEDOUTSAS)(
|
|
PVOID, DWORD, PLUID, PSID, PDWORD, PHANDLE, PWLX_MPR_NOTIFY_INFO, PVOID);
|
|
|
|
typedef
|
|
BOOL (WINAPI * PWLX_ACTIVATEUSERSHELL)(
|
|
PVOID, PWSTR, PWSTR, PVOID);
|
|
|
|
typedef
|
|
int (WINAPI * PWLX_LOGGEDONSAS)(
|
|
PVOID, DWORD, PVOID);
|
|
|
|
typedef
|
|
VOID (WINAPI * PWLX_DISPLAYLOCKEDNOTICE)(
|
|
PVOID );
|
|
|
|
typedef
|
|
int (WINAPI * PWLX_WKSTALOCKEDSAS)(
|
|
PVOID, DWORD );
|
|
|
|
typedef
|
|
BOOL (WINAPI * PWLX_ISLOCKOK)(
|
|
PVOID );
|
|
|
|
typedef
|
|
BOOL (WINAPI * PWLX_ISLOGOFFOK)(
|
|
PVOID );
|
|
|
|
typedef
|
|
VOID (WINAPI * PWLX_LOGOFF)(
|
|
PVOID );
|
|
|
|
typedef
|
|
VOID (WINAPI * PWLX_SHUTDOWN)(
|
|
PVOID, DWORD );
|
|
|
|
typedef
|
|
BOOL (WINAPI * PWLX_STARTAPPLICATION)(
|
|
PVOID, PWSTR, PVOID, PWSTR);
|
|
|
|
typedef
|
|
BOOL (WINAPI * PWLX_SSNOTIFY)(
|
|
PVOID, BOOL *);
|
|
|
|
#define WLX_NEGOTIATE_NAME "WlxNegotiate"
|
|
#define WLX_INITIALIZE_NAME "WlxInitialize"
|
|
#define WLX_DISPLAYSASNOTICE_NAME "WlxDisplaySASNotice"
|
|
#define WLX_LOGGEDOUTSAS_NAME "WlxLoggedOutSAS"
|
|
#define WLX_ACTIVATEUSERSHELL_NAME "WlxActivateUserShell"
|
|
#define WLX_LOGGEDONSAS_NAME "WlxLoggedOnSAS"
|
|
#define WLX_DISPLAYLOCKED_NAME "WlxDisplayLockedNotice"
|
|
#define WLX_WKSTALOCKEDSAS_NAME "WlxWkstaLockedSAS"
|
|
#define WLX_ISLOCKOK_NAME "WlxIsLockOk"
|
|
#define WLX_ISLOGOFFOK_NAME "WlxIsLogoffOk"
|
|
#define WLX_LOGOFF_NAME "WlxLogoff"
|
|
#define WLX_SHUTDOWN_NAME "WlxShutdown"
|
|
#define WLX_STARTAPPLICATION_NAME "WlxStartApplication"
|
|
#define WLX_SSNOTIFY_NAME "WlxScreenSaverNotify"
|
|
|
|
|
|
typedef struct _GINASESSION {
|
|
struct _GINASESSION * pNext;
|
|
struct _GINASESSION * pPrev;
|
|
HANDLE hWlx; // Handle used by the DLL to call us
|
|
HANDLE hInstance; // Handle of the DLL
|
|
PVOID pGinaContext; // Pointer we store for them
|
|
DWORD cTimeout; // Current timeout, in sec.
|
|
PWLX_NEGOTIATE pWlxNegotiate; // WlxNegotiate function
|
|
PWLX_INITIALIZE pWlxInitialize; // WlxInitialize function
|
|
PWLX_DISPLAYSASNOTICE pWlxDisplaySASNotice;
|
|
PWLX_LOGGEDOUTSAS pWlxLoggedOutSAS;
|
|
PWLX_ACTIVATEUSERSHELL pWlxActivateUserShell;
|
|
PWLX_LOGGEDONSAS pWlxLoggedOnSAS;
|
|
PWLX_DISPLAYLOCKEDNOTICE pWlxDisplayLockedNotice;
|
|
PWLX_WKSTALOCKEDSAS pWlxWkstaLockedSAS;
|
|
PWLX_ISLOCKOK pWlxIsLockOk;
|
|
PWLX_ISLOGOFFOK pWlxIsLogoffOk;
|
|
PWLX_LOGOFF pWlxLogoff;
|
|
PWLX_SHUTDOWN pWlxShutdown;
|
|
PWLX_STARTAPPLICATION pWlxStartApplication;
|
|
PWLX_SSNOTIFY pWlxScreenSaverNotify;
|
|
} GINASESSION, * PGINASESSION;
|
|
|
|
|
|
#define BREAK_NEGOTIATE 0x00000001
|
|
#define BREAK_INITIALIZE 0x00000002
|
|
#define BREAK_DISPLAY 0x00000004
|
|
#define BREAK_LOGGEDOUT 0x00000008
|
|
#define BREAK_ACTIVATE 0x00000010
|
|
#define BREAK_LOGGEDON 0x00000020
|
|
#define BREAK_DISPLAYLOCKED 0x00000040
|
|
#define BREAK_WKSTALOCKED 0x00000080
|
|
#define BREAK_ISLOCKOK 0x00000100
|
|
#define BREAK_ISLOGOFFOK 0x00000200
|
|
#define BREAK_LOGOFF 0x00000400
|
|
#define BREAK_SHUTDOWN 0x00000800
|
|
|
|
#define FLAG_ON(dw, f) dw |= (f)
|
|
#define FLAG_OFF(dw, f) dw &= (~(f))
|
|
#define TEST_FLAG(dw, f) ((BOOL)(dw & (f)))
|
|
|
|
#else // not TYPES_ONLY
|
|
|
|
extern DWORD GinaBreakFlags;
|
|
|
|
PGINASESSION
|
|
LoadGinaDll(PWSTR pszGinaDll);
|
|
|
|
|
|
BOOL
|
|
DetermineUserInterface(PGLOBALS pGlobals);
|
|
|
|
|
|
void
|
|
GinaCatastrophicError(PGLOBALS pGlobals);
|
|
|
|
void
|
|
CADNotify(PGLOBALS pGlobals, DWORD SasType);
|
|
|
|
#define IsShutdownReturn(Result) ((Result == WLX_SAS_ACTION_SHUTDOWN) || \
|
|
(Result == WLX_SAS_ACTION_SHUTDOWN_REBOOT) || \
|
|
(Result == WLX_SAS_ACTION_SHUTDOWN_POWER_OFF) )
|
|
|
|
|
|
|
|
#endif
|