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
7 * PROGRAMMERS: Eric Kohl
10 #define WIN32_NO_STATUS
12 #define NTOS_MODE_USER
13 #include <ndk/cmfuncs.h>
14 #include <ndk/kefuncs.h>
15 #include <ndk/lpctypes.h>
16 #include <ndk/lpcfuncs.h>
17 #include <ndk/obfuncs.h>
18 #include <ndk/rtlfuncs.h>
19 #include <ndk/setypes.h>
30 #include <wine/debug.h>
33 typedef enum _LSA_DB_OBJECT_TYPE
41 } LSA_DB_OBJECT_TYPE
, *PLSA_DB_OBJECT_TYPE
;
43 typedef struct _LSA_DB_OBJECT
46 LSA_DB_OBJECT_TYPE ObjectType
;
50 struct _LSA_DB_OBJECT
*ParentObject
;
51 } LSA_DB_OBJECT
, *PLSA_DB_OBJECT
;
53 #define LSAP_DB_SIGNATURE 0x12345678
56 typedef struct _LSAP_POLICY_AUDIT_EVENTS_DATA
59 DWORD MaximumAuditEventCount
;
61 } LSAP_POLICY_AUDIT_EVENTS_DATA
, *PLSAP_POLICY_AUDIT_EVENTS_DATA
;
66 StartAuthenticationPort(VOID
);
70 LsapInitDatabase(VOID
);
73 LsapCreateDbObject(IN PLSA_DB_OBJECT ParentObject
,
75 IN LSA_DB_OBJECT_TYPE HandleType
,
76 IN ACCESS_MASK DesiredAccess
,
77 OUT PLSA_DB_OBJECT
*DbObject
);
80 LsapOpenDbObject(IN PLSA_DB_OBJECT ParentObject
,
82 IN LSA_DB_OBJECT_TYPE ObjectType
,
83 IN ACCESS_MASK DesiredAccess
,
84 OUT PLSA_DB_OBJECT
*DbObject
);
87 LsapValidateDbObject(IN LSAPR_HANDLE Handle
,
88 IN LSA_DB_OBJECT_TYPE HandleType
,
89 IN ACCESS_MASK GrantedAccess
,
90 OUT PLSA_DB_OBJECT
*DbObject
);
93 LsapCloseDbObject(IN PLSA_DB_OBJECT DbObject
);
96 LsapGetObjectAttribute(PLSA_DB_OBJECT DbObject
,
99 PULONG AttributeSize
);
102 LsapSetObjectAttribute(PLSA_DB_OBJECT DbObject
,
103 LPWSTR AttributeName
,
104 LPVOID AttributeData
,
105 ULONG AttributeSize
);
109 LsarStartRpcServer(VOID
);
113 LsarQueryAuditLog(PLSA_DB_OBJECT PolicyObject
,
114 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
117 LsarQueryAuditEvents(PLSA_DB_OBJECT PolicyObject
,
118 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
121 LsarQueryPrimaryDomain(PLSA_DB_OBJECT PolicyObject
,
122 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
125 LsarQueryPdAccount(PLSA_DB_OBJECT PolicyObject
,
126 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
129 LsarQueryAccountDomain(PLSA_DB_OBJECT PolicyObject
,
130 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
133 LsarQueryServerRole(PLSA_DB_OBJECT PolicyObject
,
134 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
137 LsarQueryReplicaSource(PLSA_DB_OBJECT PolicyObject
,
138 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
141 LsarQueryDefaultQuota(PLSA_DB_OBJECT PolicyObject
,
142 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
145 LsarQueryModification(PLSA_DB_OBJECT PolicyObject
,
146 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
149 LsarQueryAuditFull(PLSA_DB_OBJECT PolicyObject
,
150 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
153 LsarQueryDnsDomain(PLSA_DB_OBJECT PolicyObject
,
154 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
157 LsarQueryDnsDomainInt(PLSA_DB_OBJECT PolicyObject
,
158 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
161 LsarQueryLocalAccountDomain(PLSA_DB_OBJECT PolicyObject
,
162 PLSAPR_POLICY_INFORMATION
*PolicyInformation
);
165 LsarSetPrimaryDomain(PLSA_DB_OBJECT PolicyObject
,
166 PLSAPR_POLICY_PRIMARY_DOM_INFO Info
);
169 LsarSetAccountDomain(PLSA_DB_OBJECT PolicyObject
,
170 PLSAPR_POLICY_ACCOUNT_DOM_INFO Info
);
173 LsarSetDnsDomain(PLSA_DB_OBJECT PolicyObject
,
174 PLSAPR_POLICY_DNS_DOMAIN_INFO Info
);
178 LsarpLookupPrivilegeName(PLUID Value
,
179 PUNICODE_STRING
*Name
);
182 LsarpLookupPrivilegeValue(PUNICODE_STRING Name
,
190 LsapLookupSids(PLSAPR_SID_ENUM_BUFFER SidEnumBuffer
,
191 PLSAPR_TRANSLATED_NAME OutputNames
);