* PROGRAMMERS: Eric Kohl
*/
+#include <stdarg.h>
+
#define WIN32_NO_STATUS
#define _INC_WINDOWS
#define COM_NO_WINDOWS_H
-#include <stdarg.h>
+
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
+#include <winuser.h>
+
#define NTOS_MODE_USER
#include <ndk/cmfuncs.h>
#include <ndk/kefuncs.h>
#include <ndk/psfuncs.h>
#include <ndk/rtlfuncs.h>
#include <ndk/setypes.h>
+#include <ndk/sefuncs.h>
#include <ndk/umfuncs.h>
#include <ntsam.h>
#include <ntlsa.h>
-//#include <ntsecapi.h>
#include <sddl.h>
-//#include <string.h>
-
#include <lsass.h>
#include <lsa_s.h>
#include <wine/debug.h>
+WINE_DEFAULT_DEBUG_CHANNEL(lsasrv);
+#include "resources.h"
typedef enum _LSA_DB_OBJECT_TYPE
{
DWORD AuditEvents[0];
} LSAP_POLICY_AUDIT_EVENTS_DATA, *PLSAP_POLICY_AUDIT_EVENTS_DATA;
+typedef struct _LSAP_LOGON_CONTEXT
+{
+ LIST_ENTRY Entry;
+ HANDLE ClientProcessHandle;
+ HANDLE ConnectionHandle;
+} LSAP_LOGON_CONTEXT, *PLSAP_LOGON_CONTEXT;
extern SID_IDENTIFIER_AUTHORITY NullSidAuthority;
extern SID_IDENTIFIER_AUTHORITY WorldSidAuthority;
extern PSID AccountDomainSid;
extern UNICODE_STRING AccountDomainName;
+extern PSID LsapLocalSystemSid;
+
+
/* authpackage.c */
NTSTATUS
LsapInitAuthPackages(VOID);
NTSTATUS
-LsapLookupAuthenticationPackageByName(IN PSTRING PackageName,
- OUT PULONG PackageId);
+LsapLookupAuthenticationPackage(PLSA_API_MSG RequestMsg,
+ PLSAP_LOGON_CONTEXT LogonContext);
+
+NTSTATUS
+LsapCallAuthenticationPackage(PLSA_API_MSG RequestMsg,
+ PLSAP_LOGON_CONTEXT LogonContext);
+
+NTSTATUS
+LsapLogonUser(PLSA_API_MSG RequestMsg,
+ PLSAP_LOGON_CONTEXT LogonContext);
/* authport.c */
NTSTATUS
LsapCreateSecretSd(PSECURITY_DESCRIPTOR *SecretSd,
PULONG SecretSdSize);
+/* session.c */
+VOID
+LsapInitLogonSessions(VOID);
+
+NTSTATUS
+NTAPI
+LsapCreateLogonSession(IN PLUID LogonId);
+
+NTSTATUS
+NTAPI
+LsapDeleteLogonSession(IN PLUID LogonId);
+
+NTSTATUS
+LsapSetLogonSessionData(IN PLUID LogonId);
+
+/* utils.c */
+INT
+LsapLoadString(HINSTANCE hInstance,
+ UINT uId,
+ LPWSTR lpBuffer,
+ INT nBufferMax);
+
/* EOF */