-#pragma once
+#ifndef _MSGINA_H
+#define _MSGINA_H
-#include <windows.h>
+#define WIN32_NO_STATUS
+
+#include <stdarg.h>
+#include <stdlib.h>
+#include <windef.h>
+#include <winbase.h>
+#include <wincon.h>
+#include <winreg.h>
+#include <wingdi.h>
+#include <winnls.h>
+#include <winsvc.h>
+#include <winuser.h>
#include <userenv.h>
#include <winwlx.h>
+#include <ndk/obfuncs.h>
+#include <ndk/rtlfuncs.h>
+#include <ndk/sefuncs.h>
+#include <ntlsa.h>
+#include <ntsecapi.h>
+
+#include <wine/debug.h>
+WINE_DEFAULT_DEBUG_CHANNEL(msgina);
+
#include "resource.h"
/* Values for GINA_CONTEXT.AutoLogonState */
typedef struct
{
- HANDLE hWlx;
- LPWSTR station;
- PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
- HANDLE hDllInstance;
- HWND hStatusWindow;
- DWORD AutoLogonState;
-
- /* Informations to be filled during logon */
- HANDLE UserToken;
- PLUID pAuthenticationId;
- PDWORD pdwOptions;
- PWLX_MPR_NOTIFY_INFO pMprNotifyInfo;
- PVOID *pProfile;
-
- /* Current logo to display */
- HBITMAP hBitmap;
+ HANDLE hWlx;
+ LPWSTR station;
+ PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
+ HANDLE hDllInstance;
+ HWND hStatusWindow;
+ DWORD AutoLogonState;
+ BOOL bDisableCAD;
+ BOOL bAutoAdminLogon;
+ BOOL bDontDisplayLastUserName;
+ BOOL bShutdownWithoutLogon;
+
+ /* Information to be filled during logon */
+ WCHAR UserName[256];
+ WCHAR Domain[256];
+ LPWSTR Password;
+ SYSTEMTIME LogonTime;
+ HANDLE UserToken;
+ PLUID pAuthenticationId;
+ PDWORD pdwOptions;
+ PWLX_MPR_NOTIFY_INFO pMprNotifyInfo;
+ PVOID *pProfile;
+
+ /* Current logo to display */
+ HBITMAP hBitmap;
} GINA_CONTEXT, *PGINA_CONTEXT;
extern HINSTANCE hDllInstance;
typedef INT (*PFGINA_LOGGEDONSAS)(PGINA_CONTEXT, DWORD);
typedef INT (*PFGINA_LOGGEDOUTSAS)(PGINA_CONTEXT);
typedef INT (*PFGINA_LOCKEDSAS)(PGINA_CONTEXT);
+typedef VOID (*PFGINA_DISPLAYLOCKEDNOTICE)(PGINA_CONTEXT);
+
typedef struct _GINA_UI
{
- PFGINA_INITIALIZE Initialize;
- PFGINA_DISPLAYSTATUSMESSAGE DisplayStatusMessage;
- PFGINA_REMOVESTATUSMESSAGE RemoveStatusMessage;
- PFGINA_DISPLAYSASNOTICE DisplaySASNotice;
- PFGINA_LOGGEDONSAS LoggedOnSAS;
- PFGINA_LOGGEDOUTSAS LoggedOutSAS;
- PFGINA_LOCKEDSAS LockedSAS;
+ PFGINA_INITIALIZE Initialize;
+ PFGINA_DISPLAYSTATUSMESSAGE DisplayStatusMessage;
+ PFGINA_REMOVESTATUSMESSAGE RemoveStatusMessage;
+ PFGINA_DISPLAYSASNOTICE DisplaySASNotice;
+ PFGINA_LOGGEDONSAS LoggedOnSAS;
+ PFGINA_LOGGEDOUTSAS LoggedOutSAS;
+ PFGINA_LOCKEDSAS LockedSAS;
+ PFGINA_DISPLAYLOCKEDNOTICE DisplayLockedNotice;
} GINA_UI, *PGINA_UI;
/* msgina.c */
+BOOL
+DoAdminUnlock(
+ IN PWSTR UserName,
+ IN PWSTR Domain,
+ IN PWSTR Password);
+
BOOL
DoLoginTasks(
- IN OUT PGINA_CONTEXT pgContext,
- IN PWSTR UserName,
- IN PWSTR Domain,
- IN PWSTR Password);
+ IN OUT PGINA_CONTEXT pgContext,
+ IN PWSTR UserName,
+ IN PWSTR Domain,
+ IN PWSTR Password);
+
+#endif /* _MSGINA_H */
/* EOF */