Merge from amd64-branch:
[reactos.git] / reactos / include / reactos / subsys / 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 <ntsecapi.h>
15
16 #define LSASS_MAX_LOGON_PROCESS_NAME_LENGTH 127
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 ULONG Dummy;
41 } LSASS_DEREGISTER_LOGON_PROCESS_REQUEST,
42 *PLSASS_DEREGISTER_LOGON_PROCES_REQUEST;
43
44 typedef struct _LSASS_DEREGISTER_LOGON_PROCESS_REPLY
45 {
46 ULONG Dummy;
47 } LSASS_DEREGISTER_LOGON_PROCESS_REPLY,
48 *PLSASS_DEREGISTER_LOGON_PROCESS_REPLY;
49
50 typedef struct _LSASS_CALL_AUTHENTICATION_PACKAGE_REQUEST
51 {
52 ULONG AuthenticationPackage;
53 ULONG InBufferLength;
54 UCHAR InBuffer[0];
55 } LSASS_CALL_AUTHENTICATION_PACKAGE_REQUEST,
56 *PLSASS_CALL_AUTHENTICATION_PACKAGE_REQUEST;
57
58 typedef struct _LSASS_CALL_AUTHENTICATION_PACKAGE_REPLY
59 {
60 ULONG OutBufferLength;
61 UCHAR OutBuffer[0];
62 } LSASS_CALL_AUTHENTICATION_PACKAGE_REPLY,
63 *PLSASS_CALL_AUTHENTICATION_PACKAGE_REPLY;
64
65 typedef struct _LSASS_LOGON_USER_REQUEST
66 {
67 ULONG OriginNameLength;
68 PWSTR OriginName;
69 SECURITY_LOGON_TYPE LogonType;
70 ULONG AuthenticationPackage;
71 PVOID AuthenticationInformation;
72 ULONG AuthenticationInformationLength;
73 ULONG LocalGroupsCount;
74 PSID_AND_ATTRIBUTES LocalGroups;
75 TOKEN_SOURCE SourceContext;
76 UCHAR Data[1];
77 } LSASS_LOGON_USER_REQUEST, *PLSASS_LOGON_USER_REQUEST;
78
79 typedef struct _LSASS_LOGON_USER_REPLY
80 {
81 PVOID ProfileBuffer;
82 ULONG ProfileBufferLength;
83 LUID LogonId;
84 HANDLE Token;
85 QUOTA_LIMITS Quotas;
86 NTSTATUS SubStatus;
87 UCHAR Data[1];
88 } LSASS_LOGON_USER_REPLY, *PLSASS_LOGON_USER_REPLY;
89
90 typedef struct _LSASS_REGISTER_LOGON_PROCESS_REQUEST
91 {
92 ULONG Length;
93 WCHAR LogonProcessNameBuffer[127];
94 } LSASS_REGISTER_LOGON_PROCESS_REQUEST, *PLSASS_REGISTER_LOGON_PROCESS_REQUEST;
95
96 typedef struct _LSASS_REGISTER_LOGON_PROCESS_REPLY
97 {
98 LSA_OPERATIONAL_MODE OperationalMode;
99 } LSASS_REGISTER_LOGON_PROCESS_REPLY, *PLSASS_REGISTER_LOGON_PROCESS_REPLY;
100
101
102 typedef struct _LSASS_CONNECT_DATA
103 {
104 NTSTATUS Status;
105 LSA_OPERATIONAL_MODE OperationalMode;
106 ULONG Length;
107 CHAR LogonProcessNameBuffer[LSASS_MAX_LOGON_PROCESS_NAME_LENGTH + 1];
108 } LSASS_CONNECT_DATA, *PLSASS_CONNECT_DATA;
109
110
111 typedef union _LSASS_REQUEST
112 {
113 PORT_MESSAGE Header;
114 struct {
115 UCHAR LpcHeader[sizeof(PORT_MESSAGE)];
116 ULONG Type;
117 union
118 {
119 LSASS_REGISTER_LOGON_PROCESS_REQUEST RegisterLogonProcessRequest;
120 LSASS_LOGON_USER_REQUEST LogonUserRequest;
121 LSASS_CALL_AUTHENTICATION_PACKAGE_REQUEST
122 CallAuthenticationPackageRequest;
123 LSASS_DEREGISTER_LOGON_PROCESS_REPLY DeregisterLogonProcessRequest;
124 LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REQUEST
125 LookupAuthenticationPackageRequest;
126 } d;
127 };
128 } LSASS_REQUEST, *PLSASS_REQUEST;
129
130 typedef struct _LSASS_REPLY
131 {
132 PORT_MESSAGE Header;
133 NTSTATUS Status;
134 union
135 {
136 LSASS_REGISTER_LOGON_PROCESS_REPLY RegisterLogonProcessReply;
137 LSASS_LOGON_USER_REPLY LogonUserReply;
138 LSASS_CALL_AUTHENTICATION_PACKAGE_REPLY CallAuthenticationPackageReply;
139 LSASS_DEREGISTER_LOGON_PROCESS_REPLY DeregisterLogonProcessReply;
140 LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REPLY
141 LookupAuthenticationPackageReply;
142 } d;
143 } LSASS_REPLY, *PLSASS_REPLY;
144
145 #endif /* __INCLUDE_LSASS_LSASS_H */