- Forgot this file for msvc build
[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 ULONG Dummy;
39 } LSASS_DEREGISTER_LOGON_PROCESS_REQUEST,
40 *PLSASS_DEREGISTER_LOGON_PROCES_REQUEST;
41
42 typedef struct _LSASS_DEREGISTER_LOGON_PROCESS_REPLY
43 {
44 ULONG Dummy;
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 union _LSASS_REQUEST
100 {
101 PORT_MESSAGE Header;
102 struct {
103 UCHAR LpcHeader[sizeof(PORT_MESSAGE)];
104 ULONG Type;
105 union
106 {
107 LSASS_REGISTER_LOGON_PROCESS_REQUEST RegisterLogonProcessRequest;
108 LSASS_LOGON_USER_REQUEST LogonUserRequest;
109 LSASS_CALL_AUTHENTICATION_PACKAGE_REQUEST
110 CallAuthenticationPackageRequest;
111 LSASS_DEREGISTER_LOGON_PROCESS_REPLY DeregisterLogonProcessRequest;
112 LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REQUEST
113 LookupAuthenticationPackageRequest;
114 } d;
115 };
116 } LSASS_REQUEST, *PLSASS_REQUEST;
117
118 typedef struct _LSASS_REPLY
119 {
120 PORT_MESSAGE Header;
121 NTSTATUS Status;
122 union
123 {
124 LSASS_REGISTER_LOGON_PROCESS_REPLY RegisterLogonProcessReply;
125 LSASS_LOGON_USER_REPLY LogonUserReply;
126 LSASS_CALL_AUTHENTICATION_PACKAGE_REPLY CallAuthenticationPackageReply;
127 LSASS_DEREGISTER_LOGON_PROCESS_REPLY DeregisterLogonProcessReply;
128 LSASS_LOOKUP_AUTHENTICATION_PACKAGE_REPLY
129 LookupAuthenticationPackageReply;
130 } d;
131 } LSASS_REPLY, *PLSASS_REPLY;
132
133 #endif /* __INCLUDE_LSASS_LSASS_H */