- Use correct, documented, LPC Message structure (PORT_MESSAGE). Fix all caller code...
[reactos.git] / reactos / include / 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_REQUEST_REGISTER_LOGON_PROCESS (1)
17 #define LSASS_REQUEST_CALL_AUTHENTICATION_PACKAGE (2)
18 #define LSASS_REQUEST_DEREGISTER_LOGON_PROCESS (3)
19 #define LSASS_REQUEST_LOGON_USER (4)
20 #define LSASS_REQUEST_LOOKUP_AUTHENTICATION_PACKAGE (5)
21 #define LSASS_REQUEST_MAXIMUM (6)
22
23 typedef struct _LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REQUEST
24 {
25 ULONG PackageNameLength;
26 WCHAR PackageName[0];
27 } LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REQUEST,
28 *PLSASS_LOOKUP_AUTHENTICATION_PACKAGE_REQUEST;
29
30 typedef struct _LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REPLY
31 {
32 ULONG Package;
33 } LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REPLY,
34 *PLSASS_LOOKUP_AUTHENTICATION_PACKAGE_REPLY;
35
36 typedef struct _LSASS_DEREGISTER_LOGON_PROCESS_REQUEST
37 {
38 } LSASS_DEREGISTER_LOGON_PROCESS_REQUEST,
39 *PLSASS_DEREGISTER_LOGON_PROCES_REQUEST;
40
41 typedef struct _LSASS_DEREGISTER_LOGON_PROCESS_REPLY
42 {
43 } LSASS_DEREGISTER_LOGON_PROCESS_REPLY,
44 *PLSASS_DEREGISTER_LOGON_PROCESS_REPLY;
45
46 typedef struct _LSASS_CALL_AUTHENTICATION_PACKAGE_REQUEST
47 {
48 ULONG AuthenticationPackage;
49 ULONG InBufferLength;
50 UCHAR InBuffer[0];
51 } LSASS_CALL_AUTHENTICATION_PACKAGE_REQUEST,
52 *PLSASS_CALL_AUTHENTICATION_PACKAGE_REQUEST;
53
54 typedef struct _LSASS_CALL_AUTHENTICATION_PACKAGE_REPLY
55 {
56 ULONG OutBufferLength;
57 UCHAR OutBuffer[0];
58 } LSASS_CALL_AUTHENTICATION_PACKAGE_REPLY,
59 *PLSASS_CALL_AUTHENTICATION_PACKAGE_REPLY;
60
61 typedef struct _LSASS_LOGON_USER_REQUEST
62 {
63 ULONG OriginNameLength;
64 PWSTR OriginName;
65 SECURITY_LOGON_TYPE LogonType;
66 ULONG AuthenticationPackage;
67 PVOID AuthenticationInformation;
68 ULONG AuthenticationInformationLength;
69 ULONG LocalGroupsCount;
70 PSID_AND_ATTRIBUTES LocalGroups;
71 TOKEN_SOURCE SourceContext;
72 UCHAR Data[1];
73 } LSASS_LOGON_USER_REQUEST, *PLSASS_LOGON_USER_REQUEST;
74
75 typedef struct _LSASS_LOGON_USER_REPLY
76 {
77 PVOID ProfileBuffer;
78 ULONG ProfileBufferLength;
79 LUID LogonId;
80 HANDLE Token;
81 QUOTA_LIMITS Quotas;
82 NTSTATUS SubStatus;
83 UCHAR Data[1];
84 } LSASS_LOGON_USER_REPLY, *PLSASS_LOGON_USER_REPLY;
85
86 typedef struct _LSASS_REGISTER_LOGON_PROCESS_REQUEST
87 {
88 ULONG Length;
89 WCHAR LogonProcessNameBuffer[127];
90 } LSASS_REGISTER_LOGON_PROCESS_REQUEST, *PLSASS_REGISTER_LOGON_PROCESS_REQUEST;
91
92 typedef struct _LSASS_REGISTER_LOGON_PROCESS_REPLY
93 {
94 LSA_OPERATIONAL_MODE OperationalMode;
95 } LSASS_REGISTER_LOGON_PROCESS_REPLY, *PLSASS_REGISTER_LOGON_PROCESS_REPLY;
96
97 typedef union _LSASS_REQUEST
98 {
99 PORT_MESSAGE Header;
100 struct {
101 UCHAR LpcHeader[LPC_MESSAGE_BASE_SIZE];
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 };
114 } LSASS_REQUEST, *PLSASS_REQUEST;
115
116 typedef struct _LSASS_REPLY
117 {
118 PORT_MESSAGE Header;
119 NTSTATUS Status;
120 union
121 {
122 LSASS_REGISTER_LOGON_PROCESS_REPLY RegisterLogonProcessReply;
123 LSASS_LOGON_USER_REPLY LogonUserReply;
124 LSASS_CALL_AUTHENTICATION_PACKAGE_REPLY CallAuthenticationPackageReply;
125 LSASS_DEREGISTER_LOGON_PROCESS_REPLY DeregisterLogonProcessReply;
126 LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REPLY
127 LookupAuthenticationPackageReply;
128 } d;
129 } LSASS_REPLY, *PLSASS_REPLY;
130
131 #endif /* __INCLUDE_LSASS_LSASS_H */