[LSASRV]
[reactos.git] / reactos / dll / win32 / lsasrv / lsasrv.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: Local Security Authority (LSA) Server
4 * FILE: reactos/dll/win32/lsasrv/lsasrv.h
5 * PURPOSE: Common header file
6 *
7 * PROGRAMMERS: Eric Kohl
8 */
9
10 #define WIN32_NO_STATUS
11 #include <windows.h>
12 #define NTOS_MODE_USER
13 #include <ndk/cmfuncs.h>
14 #include <ndk/lpctypes.h>
15 #include <ndk/lpcfuncs.h>
16 #include <ndk/obfuncs.h>
17 #include <ndk/rtlfuncs.h>
18 #include <ndk/setypes.h>
19
20 #include <ntsecapi.h>
21 #include <sddl.h>
22
23 #include <string.h>
24
25 #include "lsass.h"
26 #include "lsa_s.h"
27
28 #include <wine/debug.h>
29
30
31 typedef enum _LSA_DB_OBJECT_TYPE
32 {
33 LsaDbIgnoreObject,
34 LsaDbContainerObject,
35 LsaDbPolicyObject,
36 LsaDbAccountObject,
37 LsaDbDomainObject,
38 LsaDbSecretObject
39 } LSA_DB_OBJECT_TYPE, *PLSA_DB_OBJECT_TYPE;
40
41 typedef struct _LSA_DB_OBJECT
42 {
43 ULONG Signature;
44 LSA_DB_OBJECT_TYPE ObjectType;
45 ULONG RefCount;
46 ACCESS_MASK Access;
47 HANDLE KeyHandle;
48 struct _LSA_DB_OBJECT *ParentObject;
49 } LSA_DB_OBJECT, *PLSA_DB_OBJECT;
50
51 #define LSAP_DB_SIGNATURE 0x12345678
52
53
54 /* authport.c */
55 NTSTATUS
56 StartAuthenticationPort(VOID);
57
58 /* database.c */
59 NTSTATUS
60 LsapInitDatabase(VOID);
61
62 NTSTATUS
63 LsapCreateDbObject(IN PLSA_DB_OBJECT ParentObject,
64 IN LPWSTR ObjectName,
65 IN LSA_DB_OBJECT_TYPE HandleType,
66 IN ACCESS_MASK DesiredAccess,
67 OUT PLSA_DB_OBJECT *DbObject);
68
69 NTSTATUS
70 LsapOpenDbObject(IN PLSA_DB_OBJECT ParentObject,
71 IN LPWSTR ObjectName,
72 IN LSA_DB_OBJECT_TYPE ObjectType,
73 IN ACCESS_MASK DesiredAccess,
74 OUT PLSA_DB_OBJECT *DbObject);
75
76 NTSTATUS
77 LsapValidateDbObject(IN LSAPR_HANDLE Handle,
78 IN LSA_DB_OBJECT_TYPE HandleType,
79 IN ACCESS_MASK GrantedAccess,
80 OUT PLSA_DB_OBJECT *DbObject);
81
82 NTSTATUS
83 LsapCloseDbObject(IN PLSA_DB_OBJECT DbObject);
84
85 NTSTATUS
86 LsapGetObjectAttribute(PLSA_DB_OBJECT DbObject,
87 LPWSTR AttributeName,
88 LPVOID AttributeData,
89 PULONG AttributeSize);
90
91 NTSTATUS
92 LsapSetObjectAttribute(PLSA_DB_OBJECT DbObject,
93 LPWSTR AttributeName,
94 LPVOID AttributeData,
95 ULONG AttributeSize);
96
97 /* lsarpc.c */
98 VOID
99 LsarStartRpcServer(VOID);
100
101 /* policy.c */
102 NTSTATUS
103 LsarQueryAuditEvents(PLSA_DB_OBJECT PolicyObject,
104 PLSAPR_POLICY_INFORMATION *PolicyInformation);
105
106 NTSTATUS
107 LsarQueryPrimaryDomain(PLSA_DB_OBJECT PolicyObject,
108 PLSAPR_POLICY_INFORMATION *PolicyInformation);
109
110 NTSTATUS
111 LsarQueryAccountDomain(PLSA_DB_OBJECT PolicyObject,
112 PLSAPR_POLICY_INFORMATION *PolicyInformation);
113
114 NTSTATUS
115 LsarQueryDnsDomain(PLSA_DB_OBJECT PolicyObject,
116 PLSAPR_POLICY_INFORMATION *PolicyInformation);
117
118 NTSTATUS
119 LsarSetPrimaryDomain(PLSA_DB_OBJECT PolicyObject,
120 PLSAPR_POLICY_PRIMARY_DOM_INFO Info);
121
122 NTSTATUS
123 LsarSetAccountDomain(PLSA_DB_OBJECT PolicyObject,
124 PLSAPR_POLICY_ACCOUNT_DOM_INFO Info);
125
126 NTSTATUS
127 LsarSetDnsDomain(PLSA_DB_OBJECT PolicyObject,
128 PLSAPR_POLICY_DNS_DOMAIN_INFO Info);
129
130 /* privileges.c */
131 NTSTATUS
132 LsarpLookupPrivilegeName(PLUID Value,
133 PUNICODE_STRING *Name);
134
135 NTSTATUS
136 LsarpLookupPrivilegeValue(PUNICODE_STRING Name,
137 PLUID Value);
138
139 /* sids.h */
140 NTSTATUS
141 LsapInitSids(VOID);
142
143 NTSTATUS
144 LsapLookupSids(PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
145 PLSAPR_TRANSLATED_NAME OutputNames);
146