[LSASRV]
[reactos.git] / reactos / dll / win32 / lsasrv / lsasrv.h
index cc9737e..4a4fa3c 100644 (file)
@@ -18,6 +18,7 @@
 #include <ndk/rtlfuncs.h>
 #include <ndk/setypes.h>
 
+#include <ntsam.h>
 #include <ntlsa.h>
 #include <ntsecapi.h>
 #include <sddl.h>
@@ -46,6 +47,7 @@ typedef struct _LSA_DB_OBJECT
     ULONG RefCount;
     ACCESS_MASK Access;
     HANDLE KeyHandle;
+    BOOLEAN Trusted;
     struct _LSA_DB_OBJECT *ParentObject;
 } LSA_DB_OBJECT, *PLSA_DB_OBJECT;
 
@@ -60,6 +62,18 @@ typedef struct _LSAP_POLICY_AUDIT_EVENTS_DATA
 } LSAP_POLICY_AUDIT_EVENTS_DATA, *PLSAP_POLICY_AUDIT_EVENTS_DATA;
 
 
+extern SID_IDENTIFIER_AUTHORITY NullSidAuthority;
+extern SID_IDENTIFIER_AUTHORITY WorldSidAuthority;
+extern SID_IDENTIFIER_AUTHORITY LocalSidAuthority;
+extern SID_IDENTIFIER_AUTHORITY CreatorSidAuthority;
+extern SID_IDENTIFIER_AUTHORITY NtAuthority;
+
+extern PSID BuiltinDomainSid;
+extern UNICODE_STRING BuiltinDomainName;
+extern PSID AccountDomainSid;
+extern UNICODE_STRING AccountDomainName;
+
+
 /* authport.c */
 NTSTATUS
 StartAuthenticationPort(VOID);
@@ -74,6 +88,7 @@ LsapCreateDbObject(IN PLSA_DB_OBJECT ParentObject,
                    IN LPWSTR ObjectName,
                    IN LSA_DB_OBJECT_TYPE HandleType,
                    IN ACCESS_MASK DesiredAccess,
+                   IN BOOLEAN Trusted,
                    OUT PLSA_DB_OBJECT *DbObject);
 
 NTSTATUS
@@ -82,6 +97,7 @@ LsapOpenDbObject(IN PLSA_DB_OBJECT ParentObject,
                  IN LPWSTR ObjectName,
                  IN LSA_DB_OBJECT_TYPE ObjectType,
                  IN ACCESS_MASK DesiredAccess,
+                 IN BOOLEAN Trusted,
                  OUT PLSA_DB_OBJECT *DbObject);
 
 NTSTATUS
@@ -93,6 +109,9 @@ LsapValidateDbObject(IN LSAPR_HANDLE Handle,
 NTSTATUS
 LsapCloseDbObject(IN PLSA_DB_OBJECT DbObject);
 
+NTSTATUS
+LsapDeleteDbObject(IN PLSA_DB_OBJECT DbObject);
+
 NTSTATUS
 LsapGetObjectAttribute(PLSA_DB_OBJECT DbObject,
                        LPWSTR AttributeName,
@@ -105,6 +124,36 @@ LsapSetObjectAttribute(PLSA_DB_OBJECT DbObject,
                        LPVOID AttributeData,
                        ULONG AttributeSize);
 
+NTSTATUS
+LsapDeleteObjectAttribute(PLSA_DB_OBJECT DbObject,
+                          LPWSTR AttributeName);
+
+/* lookup.c */
+NTSTATUS
+LsapInitSids(VOID);
+
+ULONG
+LsapGetRelativeIdFromSid(PSID Sid);
+
+NTSTATUS
+LsapLookupNames(DWORD Count,
+                PRPC_UNICODE_STRING Names,
+                PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+                PLSAPR_TRANSLATED_SIDS_EX2 TranslatedSids,
+                LSAP_LOOKUP_LEVEL LookupLevel,
+                DWORD *MappedCount,
+                DWORD LookupOptions,
+                DWORD ClientRevision);
+
+NTSTATUS
+LsapLookupSids(PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
+               PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+               PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
+               LSAP_LOOKUP_LEVEL LookupLevel,
+               DWORD *MappedCount,
+               DWORD LookupOptions,
+               DWORD ClientRevision);
+
 /* lsarpc.c */
 VOID
 LsarStartRpcServer(VOID);
@@ -162,6 +211,14 @@ NTSTATUS
 LsarQueryLocalAccountDomain(PLSA_DB_OBJECT PolicyObject,
                             PLSAPR_POLICY_INFORMATION *PolicyInformation);
 
+NTSTATUS
+LsarSetAuditLog(PLSA_DB_OBJECT PolicyObject,
+                PPOLICY_AUDIT_LOG_INFO Info);
+
+NTSTATUS
+LsarSetAuditEvents(PLSA_DB_OBJECT PolicyObject,
+                   PLSAPR_POLICY_AUDIT_EVENTS_INFO Info);
+
 NTSTATUS
 LsarSetPrimaryDomain(PLSA_DB_OBJECT PolicyObject,
                      PLSAPR_POLICY_PRIMARY_DOM_INFO Info);
@@ -170,17 +227,45 @@ NTSTATUS
 LsarSetAccountDomain(PLSA_DB_OBJECT PolicyObject,
                      PLSAPR_POLICY_ACCOUNT_DOM_INFO Info);
 
+NTSTATUS
+LsarSetServerRole(PLSA_DB_OBJECT PolicyObject,
+                  PPOLICY_LSA_SERVER_ROLE_INFO Info);
+
+NTSTATUS
+LsarSetReplicaSource(PLSA_DB_OBJECT PolicyObject,
+                     PPOLICY_LSA_REPLICA_SRCE_INFO Info);
+
+NTSTATUS
+LsarSetDefaultQuota(PLSA_DB_OBJECT PolicyObject,
+                    PPOLICY_DEFAULT_QUOTA_INFO Info);
+
+NTSTATUS
+LsarSetModification(PLSA_DB_OBJECT PolicyObject,
+                    PPOLICY_MODIFICATION_INFO Info);
+
+NTSTATUS
+LsarSetAuditFull(PLSA_DB_OBJECT PolicyObject,
+                 PPOLICY_AUDIT_FULL_QUERY_INFO Info);
+
 NTSTATUS
 LsarSetDnsDomain(PLSA_DB_OBJECT PolicyObject,
                  PLSAPR_POLICY_DNS_DOMAIN_INFO Info);
 
+NTSTATUS
+LsarSetDnsDomainInt(PLSA_DB_OBJECT PolicyObject,
+                    PLSAPR_POLICY_DNS_DOMAIN_INFO Info);
+
+NTSTATUS
+LsarSetLocalAccountDomain(PLSA_DB_OBJECT PolicyObject,
+                          PLSAPR_POLICY_ACCOUNT_DOM_INFO Info);
+
 /* privileges.c */
 NTSTATUS
 LsarpLookupPrivilegeName(PLUID Value,
-                         PUNICODE_STRING *Name);
+                         PRPC_UNICODE_STRING *Name);
 
 NTSTATUS
-LsarpLookupPrivilegeValue(PUNICODE_STRING Name,
+LsarpLookupPrivilegeValue(PRPC_UNICODE_STRING Name,
                           PLUID Value);
 
 NTSTATUS
@@ -188,11 +273,82 @@ LsarpEnumeratePrivileges(DWORD *EnumerationContext,
                          PLSAPR_PRIVILEGE_ENUM_BUFFER EnumerationBuffer,
                          DWORD PreferedMaximumLength);
 
-/* sids.h */
 NTSTATUS
-LsapInitSids(VOID);
+LsapLookupAccountRightName(ULONG RightValue,
+                           PRPC_UNICODE_STRING *Name);
 
+/* registry.h */
 NTSTATUS
-LsapLookupSids(PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
-               PLSAPR_TRANSLATED_NAME OutputNames);
+LsapRegCloseKey(IN HANDLE KeyHandle);
+
+NTSTATUS
+LsapRegCreateKey(IN HANDLE ParentKeyHandle,
+                 IN LPCWSTR KeyName,
+                 IN ACCESS_MASK DesiredAccess,
+                 OUT HANDLE KeyHandle);
+
+NTSTATUS
+LsapRegDeleteSubKey(IN HANDLE ParentKeyHandle,
+                    IN LPCWSTR KeyName);
+
+NTSTATUS
+LsapRegDeleteKey(IN HANDLE KeyHandle);
+
+NTSTATUS
+LsapRegEnumerateSubKey(IN HANDLE KeyHandle,
+                       IN ULONG Index,
+                       IN ULONG Length,
+                       OUT LPWSTR Buffer);
+
+NTSTATUS
+LsapRegOpenKey(IN HANDLE ParentKeyHandle,
+               IN LPCWSTR KeyName,
+               IN ACCESS_MASK DesiredAccess,
+               OUT HANDLE KeyHandle);
+
+NTSTATUS
+LsapRegQueryKeyInfo(IN HANDLE KeyHandle,
+                    OUT PULONG SubKeyCount,
+                    OUT PULONG ValueCount);
+
+NTSTATUS
+LsapRegDeleteValue(IN HANDLE KeyHandle,
+                   IN LPWSTR ValueName);
+
+NTSTATUS
+LsapRegEnumerateValue(IN HANDLE KeyHandle,
+                      IN ULONG Index,
+                      OUT LPWSTR Name,
+                      IN OUT PULONG NameLength,
+                      OUT PULONG Type OPTIONAL,
+                      OUT PVOID Data OPTIONAL,
+                      IN OUT PULONG DataLength OPTIONAL);
+
+NTSTATUS
+LsapRegQueryValue(IN HANDLE KeyHandle,
+                  IN LPWSTR ValueName,
+                  OUT PULONG Type OPTIONAL,
+                  OUT LPVOID Data OPTIONAL,
+                  IN OUT PULONG DataLength OPTIONAL);
+
+NTSTATUS
+LsapRegSetValue(IN HANDLE KeyHandle,
+                IN LPWSTR ValueName,
+                IN ULONG Type,
+                IN LPVOID Data,
+                IN ULONG DataLength);
+
+/* security.c */
+NTSTATUS
+LsapCreatePolicySd(PSECURITY_DESCRIPTOR *PolicySd,
+                   PULONG PolicySdSize);
+
+NTSTATUS
+LsapCreateAccountSd(PSECURITY_DESCRIPTOR *AccountSd,
+                    PULONG AccountSdSize);
+
+NTSTATUS
+LsapCreateSecretSd(PSECURITY_DESCRIPTOR *SecretSd,
+                   PULONG SecretSdSize);
 
+/* EOF */