update for HEAD-2003091401
[reactos.git] / include / lsass / lsass.h
1 /* $Id$
2  *
3  * COPYRIGHT:       See COPYING in the top level directory
4  * PROJECT:         ReactOS system libraries
5  * FILE:            include/lsass/lsass.h
6  * PURPOSE:         LSASS API declarations
7  * UPDATE HISTORY:
8  *                  Created 05/08/00
9  */
10
11 #ifndef __INCLUDE_LSASS_LSASS_H
12 #define __INCLUDE_LSASS_LSASS_H
13
14 #include <ntos.h>
15 #include <ntsecapi.h>
16 #include <napi/lpc.h>
17
18 #define LSASS_REQUEST_REGISTER_LOGON_PROCESS               (1)
19 #define LSASS_REQUEST_CALL_AUTHENTICATION_PACKAGE          (2)
20 #define LSASS_REQUEST_DEREGISTER_LOGON_PROCESS             (3)
21 #define LSASS_REQUEST_LOGON_USER                           (4)
22 #define LSASS_REQUEST_LOOKUP_AUTHENTICATION_PACKAGE        (5)
23 #define LSASS_REQUEST_MAXIMUM                              (6)
24
25 typedef struct _LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REQUEST
26 {
27    ULONG PackageNameLength;
28    WCHAR PackageName[0];
29 } LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REQUEST,
30  *PLSASS_LOOKUP_AUTHENTICATION_PACKAGE_REQUEST;
31
32 typedef struct _LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REPLY
33 {
34    ULONG Package;
35 } LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REPLY,
36  *PLSASS_LOOKUP_AUTHENTICATION_PACKAGE_REPLY;
37
38 typedef struct _LSASS_DEREGISTER_LOGON_PROCESS_REQUEST
39 {
40 } LSASS_DEREGISTER_LOGON_PROCESS_REQUEST,
41  *PLSASS_DEREGISTER_LOGON_PROCES_REQUEST;
42
43 typedef struct _LSASS_DEREGISTER_LOGON_PROCESS_REPLY
44 {   
45 } LSASS_DEREGISTER_LOGON_PROCESS_REPLY,
46  *PLSASS_DEREGISTER_LOGON_PROCESS_REPLY;
47
48 typedef struct _LSASS_CALL_AUTHENTICATION_PACKAGE_REQUEST
49 {
50    ULONG AuthenticationPackage;
51    ULONG InBufferLength;
52    UCHAR InBuffer[0];
53 } LSASS_CALL_AUTHENTICATION_PACKAGE_REQUEST,
54 *PLSASS_CALL_AUTHENTICATION_PACKAGE_REQUEST;
55
56 typedef struct _LSASS_CALL_AUTHENTICATION_PACKAGE_REPLY
57 {
58    ULONG OutBufferLength;
59    UCHAR OutBuffer[0];
60 } LSASS_CALL_AUTHENTICATION_PACKAGE_REPLY,
61 *PLSASS_CALL_AUTHENTICATION_PACKAGE_REPLY;
62
63 typedef struct _LSASS_LOGON_USER_REQUEST
64 {
65    ULONG OriginNameLength;
66    PWSTR OriginName;
67    SECURITY_LOGON_TYPE LogonType;
68    ULONG AuthenticationPackage;
69    PVOID AuthenticationInformation;
70    ULONG AuthenticationInformationLength;
71    ULONG LocalGroupsCount;
72    PSID_AND_ATTRIBUTES LocalGroups;
73    TOKEN_SOURCE SourceContext;
74    UCHAR Data[1];
75 } LSASS_LOGON_USER_REQUEST, *PLSASS_LOGON_USER_REQUEST;
76
77 typedef struct _LSASS_LOGON_USER_REPLY
78 {
79    PVOID ProfileBuffer;
80    ULONG ProfileBufferLength;
81    LUID LogonId;
82    HANDLE Token;
83    QUOTA_LIMITS Quotas;
84    NTSTATUS SubStatus;
85    UCHAR Data[1];
86 } LSASS_LOGON_USER_REPLY, *PLSASS_LOGON_USER_REPLY;
87
88 typedef struct _LSASS_REGISTER_LOGON_PROCESS_REQUEST
89 {
90    ULONG Length;
91    WCHAR LogonProcessNameBuffer[127];
92 } LSASS_REGISTER_LOGON_PROCESS_REQUEST, *PLSASS_REGISTER_LOGON_PROCESS_REQUEST;
93
94 typedef struct _LSASS_REGISTER_LOGON_PROCESS_REPLY
95 {
96    LSA_OPERATIONAL_MODE OperationalMode;
97 } LSASS_REGISTER_LOGON_PROCESS_REPLY, *PLSASS_REGISTER_LOGON_PROCESS_REPLY;
98
99 typedef struct _LSASS_REQUEST
100 {
101    LPC_MESSAGE Header;
102    ULONG Type;
103    union
104      {
105         LSASS_REGISTER_LOGON_PROCESS_REQUEST RegisterLogonProcessRequest;
106         LSASS_LOGON_USER_REQUEST LogonUserRequest;
107         LSASS_CALL_AUTHENTICATION_PACKAGE_REQUEST 
108           CallAuthenticationPackageRequest;
109         LSASS_DEREGISTER_LOGON_PROCESS_REPLY DeregisterLogonProcessRequest;
110         LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REQUEST
111           LookupAuthenticationPackageRequest;
112      } d;
113 } LSASS_REQUEST, *PLSASS_REQUEST;
114
115 typedef struct _LSASS_REPLY
116 {
117    LPC_MESSAGE Header;
118    NTSTATUS Status;
119    union
120      {
121         LSASS_REGISTER_LOGON_PROCESS_REPLY RegisterLogonProcessReply;
122         LSASS_LOGON_USER_REPLY LogonUserReply;
123         LSASS_CALL_AUTHENTICATION_PACKAGE_REPLY CallAuthenticationPackageReply;
124         LSASS_DEREGISTER_LOGON_PROCESS_REPLY DeregisterLogonProcessReply;
125         LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REPLY 
126           LookupAuthenticationPackageReply;
127      } d;
128 } LSASS_REPLY, *PLSASS_REPLY;
129
130 #endif /* __INCLUDE_LSASS_LSASS_H */