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