Windows NT 4.0 source code leak
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

//+---------------------------------------------------------------------------
//
// 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