Author: hpoussin
Date: Sat Aug 2 10:45:59 2008
New Revision: 35040
URL:
http://svn.reactos.org/svn/reactos?rev=35040&view=rev
Log:
Add lots of missing functions to LSA RPC interface
Fix existing ones to have same prototypes as MS Windows
Modified:
trunk/reactos/dll/win32/advapi32/sec/lsa.c
trunk/reactos/dll/win32/lsasrv/lsarpc.c
trunk/reactos/dll/win32/lsasrv/lsasrv.rbuild
trunk/reactos/include/reactos/idl/lsa.idl
Modified: trunk/reactos/dll/win32/advapi32/sec/lsa.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advapi32/sec/lsa…
==============================================================================
--- trunk/reactos/dll/win32/advapi32/sec/lsa.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/advapi32/sec/lsa.c [iso-8859-1] Sat Aug 2 10:45:59 2008
@@ -93,7 +93,7 @@
LSAHandleBind();
return LsarClose(LSABindingHandle,
- (unsigned long)ObjectHandle);
+ (unsigned long *)&ObjectHandle);
}
Modified: trunk/reactos/dll/win32/lsasrv/lsarpc.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/lsasrv/lsarpc.c?…
==============================================================================
--- trunk/reactos/dll/win32/lsasrv/lsarpc.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/lsasrv/lsarpc.c [iso-8859-1] Sat Aug 2 10:45:59 2008
@@ -8,8 +8,7 @@
#include "lsa_s.h"
-#define NDEBUG
-#include <debug.h>
+#include <wine/debug.h>
#define POLICY_DELETE (RTL_HANDLE_VALID << 1)
typedef struct _LSAR_POLICY_HANDLE
@@ -22,10 +21,12 @@
static RTL_CRITICAL_SECTION PolicyHandleTableLock;
static RTL_HANDLE_TABLE PolicyHandleTable;
+WINE_DEFAULT_DEBUG_CHANNEL(lsasrv);
+
/* FUNCTIONS ***************************************************************/
-static NTSTATUS
-ReferencePolicyHandle(IN LSA_HANDLE ObjectHandle,
+/*static*/ NTSTATUS
+ReferencePolicyHandle(IN LSAPR_HANDLE ObjectHandle,
IN ACCESS_MASK DesiredAccess,
OUT PLSAR_POLICY_HANDLE *Policy)
{
@@ -56,7 +57,7 @@
return Status;
}
-static VOID
+/*static*/ VOID
DereferencePolicyHandle(IN OUT PLSAR_POLICY_HANDLE Policy,
IN BOOLEAN Delete)
{
@@ -90,7 +91,7 @@
sizeof(LSAR_POLICY_HANDLE),
&PolicyHandleTable);
- DPRINT("LsarStartRpcServer() called");
+ TRACE("LsarStartRpcServer() called");
Status = RpcServerUseProtseqEpW(L"ncacn_np",
10,
@@ -98,7 +99,7 @@
NULL);
if (Status != RPC_S_OK)
{
- DPRINT1("RpcServerUseProtseqEpW() failed (Status %lx)\n", Status);
+ WARN("RpcServerUseProtseqEpW() failed (Status %lx)\n", Status);
return;
}
@@ -107,31 +108,33 @@
NULL);
if (Status != RPC_S_OK)
{
- DPRINT1("RpcServerRegisterIf() failed (Status %lx)\n", Status);
+ WARN("RpcServerRegisterIf() failed (Status %lx)\n", Status);
return;
}
Status = RpcServerListen(1, 20, TRUE);
if (Status != RPC_S_OK)
{
- DPRINT1("RpcServerListen() failed (Status %lx)\n", Status);
+ WARN("RpcServerListen() failed (Status %lx)\n", Status);
return;
}
- DPRINT("LsarStartRpcServer() done\n");
-}
+ TRACE("LsarStartRpcServer() done\n");
+}
+
/* Function 0 */
-NTSTATUS
-LsarClose(IN handle_t BindingHandle,
- IN unsigned long ObjectHandle)
-{
+NTSTATUS LsarClose(
+ handle_t hBinding,
+ LSAPR_HANDLE *ObjectHandle)
+{
+#if 0
PLSAR_POLICY_HANDLE Policy = NULL;
NTSTATUS Status;
- DPRINT("LsarClose(0x%p) called!\n", ObjectHandle);
-
- Status = ReferencePolicyHandle((LSA_HANDLE)ObjectHandle,
+ TRACE("0x%p\n", ObjectHandle);
+
+ Status = ReferencePolicyHandle(*ObjectHandle,
0,
&Policy);
if (NT_SUCCESS(Status))
@@ -142,15 +145,974 @@
}
return Status;
-}
+#endif
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
/* Function 1 */
-NTSTATUS
-LsarDelete(IN handle_t BindingHandle,
- IN unsigned long ObjectHandle)
-{
- DPRINT1("LsarDelete(0x%p) UNIMPLEMENTED!\n", ObjectHandle);
- return STATUS_ACCESS_DENIED;
-}
+NTSTATUS LsarDelete(
+ handle_t hBinding,
+ LSAPR_HANDLE ObjectHandle)
+{
+ /* Deprecated */
+ return STATUS_NOT_SUPPORTED;
+}
+
+
+/* Function 2 */
+NTSTATUS LsarEnumeratePrivileges(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ DWORD *EnumerationContext,
+ PLSAPR_PRIVILEGE_ENUM_BUFFER EnumerationBuffer,
+ DWORD PreferedMaximumLength)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 3 */
+NTSTATUS LsarQuerySecurityObject(
+ handle_t hBinding,
+ LSAPR_HANDLE ObjectHandle,
+ SECURITY_INFORMATION SecurityInformation,
+ PLSAPR_SR_SECURITY_DESCRIPTOR *SecurityDescriptor)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 4 */
+NTSTATUS LsarSetSecurityObject(
+ handle_t hBinding,
+ LSAPR_HANDLE ObjectHandle,
+ SECURITY_INFORMATION SecurityInformation,
+ PLSAPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 5 */
+NTSTATUS LsarChangePassword(
+ handle_t hBinding,
+ PRPC_UNICODE_STRING String1,
+ PRPC_UNICODE_STRING String2,
+ PRPC_UNICODE_STRING String3,
+ PRPC_UNICODE_STRING String4,
+ PRPC_UNICODE_STRING String5)
+{
+ /* Deprecated */
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 6 */
+NTSTATUS LsarOpenPolicy(
+ handle_t hBinding,
+ LPWSTR SystemName,
+ PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
+ ACCESS_MASK DesiredAccess,
+ LSAPR_HANDLE *PolicyHandle)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 7 */
+NTSTATUS LsarQueryInformationPolicy(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ POLICY_INFORMATION_CLASS InformationClass,
+ unsigned long PolicyInformation)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 8 */
+NTSTATUS LsarSetInformationPolicy(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ POLICY_INFORMATION_CLASS InformationClass,
+ unsigned long *PolicyInformation)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 9 */
+NTSTATUS LsarClearAuditLog(
+ handle_t hBinding,
+ LSAPR_HANDLE ObjectHandle)
+{
+ /* Deprecated */
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 10 */
+NTSTATUS LsarCreateAccount(
+ handle_t hBinding,
+ PRPC_SID AccountSid,
+ ACCESS_MASK DesiredAccess,
+ LSAPR_HANDLE *AccountHandle)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 11 */
+NTSTATUS LsarEnumerateAccounts(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ DWORD *EnumerationContext,
+ PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer,
+ DWORD PreferedMaximumLength)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 12 */
+NTSTATUS LsarCreateTrustedDomain(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PLSAPR_TRUST_INFORMATION TrustedDomainInformation,
+ ACCESS_MASK DesiredAccess,
+ LSAPR_HANDLE *TrustedDomainHandle)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 13 */
+NTSTATUS LsarEnumerateTrustedDomains(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ DWORD *EnumerationContext,
+ PLSAPR_TRUSTED_ENUM_BUFFER EnumerationBuffer,
+ DWORD PreferedMaximumLength)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 14 */
+NTSTATUS LsarLookupNames(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ DWORD Count,
+ PRPC_UNICODE_STRING Names,
+ PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+ PLSAPR_TRANSLATED_SIDS TranslatedSids,
+ LSAP_LOOKUP_LEVEL LookupLevel,
+ DWORD *MappedCount)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 15 */
+NTSTATUS LsarLookupSids(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
+ PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+ PLSAPR_TRANSLATED_NAMES TranslatedNames,
+ LSAP_LOOKUP_LEVEL LookupLevel,
+ DWORD *MappedCount)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 16 */
+NTSTATUS LsarCreateSecret(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_UNICODE_STRING SecretName,
+ ACCESS_MASK DesiredAccess,
+ LSAPR_HANDLE *SecretHandle)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 17 */
+NTSTATUS LsarOpenAccount(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_SID AccountSid,
+ ACCESS_MASK DesiredAccess,
+ LSAPR_HANDLE *AccountHandle)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 18 */
+NTSTATUS LsarEnumeratePrivilegesAccount(
+ handle_t hBinding,
+ LSAPR_HANDLE AccountHandle,
+ PLSAPR_PRIVILEGE_SET *Privileges)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 19 */
+NTSTATUS LsarAddPrivilegesToAccount(
+ handle_t hBinding,
+ LSAPR_HANDLE AccountHandle,
+ PLSAPR_PRIVILEGE_SET Privileges)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 20 */
+NTSTATUS LsarRemovePrivilegesFromAccount(
+ handle_t hBinding,
+ LSAPR_HANDLE AccountHandle,
+ BOOL AllPrivileges,
+ PLSAPR_PRIVILEGE_SET Privileges)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 21 */
+NTSTATUS LsarGetQuotasForAccount(
+ handle_t hBinding,
+ LSAPR_HANDLE AccountHandle,
+ PQUOTA_LIMITS QuotaLimits)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 22 */
+NTSTATUS LsarSetQuotasForAccount(
+ handle_t hBinding,
+ LSAPR_HANDLE AccountHandle,
+ PQUOTA_LIMITS QuotaLimits)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 23 */
+NTSTATUS LsarGetSystemAccessAccount(
+ handle_t hBinding,
+ LSAPR_HANDLE AccountHandle,
+ ACCESS_MASK *SystemAccess)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 24 */
+NTSTATUS LsarSetSystemAccessAccount(
+ handle_t hBinding,
+ LSAPR_HANDLE AccountHandle,
+ ACCESS_MASK SystemAccess)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 25 */
+NTSTATUS LsarOpenTrustedDomain(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_SID TrustedDomainSid,
+ ACCESS_MASK DesiredAccess,
+ LSAPR_HANDLE *TrustedDomainHandle)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 26 */
+NTSTATUS LsarQueryInfoTrustedDomain(
+ handle_t hBinding,
+ LSAPR_HANDLE TrustedDomainHandle,
+ TRUSTED_INFORMATION_CLASS InformationClass,
+ PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 27 */
+NTSTATUS LsarSetInformationTrustedDomain(
+ handle_t hBinding,
+ LSAPR_HANDLE TrustedDomainHandle,
+ TRUSTED_INFORMATION_CLASS InformationClass,
+ PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 28 */
+NTSTATUS LsarOpenSecret(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_UNICODE_STRING SecretName,
+ ACCESS_MASK DesiredAccess,
+ LSAPR_HANDLE *SecretHandle)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 29 */
+NTSTATUS LsarSetSecret(
+ handle_t hBinding,
+ LSAPR_HANDLE *SecretHandle,
+ PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue,
+ PLSAPR_CR_CIPHER_VALUE EncryptedOldValue)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 30 */
+NTSTATUS LsarQuerySecret(
+ handle_t hBinding,
+ LSAPR_HANDLE SecretHandle,
+ PLSAPR_CR_CIPHER_VALUE *EncryptedCurrentValue,
+ PLARGE_INTEGER CurrentValueSetTime,
+ PLSAPR_CR_CIPHER_VALUE *EncryptedOldValue,
+ PLARGE_INTEGER OldValueSetTime)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 31 */
+NTSTATUS LsarLookupPrivilegeValue(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_UNICODE_STRING Name,
+ PLUID Value)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 32 */
+NTSTATUS LsarLookupPrivilegeName(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PLUID Value,
+ PRPC_UNICODE_STRING *Name)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 33 */
+NTSTATUS LsarLookupPrivilegeDisplayName(
+ handle_t hBinding,
+ USHORT *LanguageReturned)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 34 */
+NTSTATUS LsarDeleteObject(
+ handle_t hBinding,
+ LSAPR_HANDLE *ObjectHandle)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 35 */
+NTSTATUS LsarEnumerateAccountsWithUserRight(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_UNICODE_STRING UserRight,
+ PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 36 */
+NTSTATUS LsarEnmuerateAccountRights(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_SID AccountSid,
+ PLSAPR_USER_RIGHT_SET UserRights)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 37 */
+NTSTATUS LsarAddAccountRights(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_SID AccountSid,
+ PLSAPR_USER_RIGHT_SET UserRights)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 38 */
+NTSTATUS LsarRemoveAccountRights(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_SID AccountSid,
+ BOOL AllRights,
+ PLSAPR_USER_RIGHT_SET UserRights)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 39 */
+NTSTATUS LsarQueryTrustedDomainInfo(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_SID TrustedDomainSid,
+ TRUSTED_INFORMATION_CLASS InformationClass,
+ PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 40 */
+NTSTATUS LsarSetTrustedDomainInfo(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_SID TrustedDomainSid,
+ TRUSTED_INFORMATION_CLASS InformationClass,
+ PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 41 */
+NTSTATUS LsarDeleteTrustedDomain(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_SID TrustedDomainSid)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 42 */
+NTSTATUS LsarStorePrivateData(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_UNICODE_STRING KeyName,
+ PLSAPR_CR_CIPHER_VALUE EncryptedData)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 43 */
+NTSTATUS LsarRetrievePrivateData(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_UNICODE_STRING KeyName,
+ PLSAPR_CR_CIPHER_VALUE *EncryptedData)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 44 */
+NTSTATUS LsarOpenPolicy2(
+ handle_t hBinding,
+ LPWSTR SystemName,
+ PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
+ ACCESS_MASK DesiredAccess,
+ LSAPR_HANDLE *PolicyHandle)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 45 */
+NTSTATUS LsarGetUserName(
+ handle_t hBinding,
+ LPWSTR SystemName,
+ PRPC_UNICODE_STRING *UserName,
+ PRPC_UNICODE_STRING *DomainName)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 46 */
+NTSTATUS LsarQueryInformationPolicy2(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ POLICY_INFORMATION_CLASS InformationClass,
+ unsigned long *PolicyInformation)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 47 */
+NTSTATUS LsarSetInformationPolicy2(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ POLICY_INFORMATION_CLASS InformationClass,
+ unsigned long PolicyInformation)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 48 */
+NTSTATUS LsarQueryTrustedDomainInfoByName(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_UNICODE_STRING TrustedDomainName,
+ POLICY_INFORMATION_CLASS InformationClass,
+ unsigned long *PolicyInformation)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 49 */
+NTSTATUS LsarSetTrustedDomainInfoByName(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_UNICODE_STRING TrustedDomainName,
+ POLICY_INFORMATION_CLASS InformationClass,
+ unsigned long PolicyInformation)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 50 */
+NTSTATUS LsarEnumerateTrustedDomainsEx(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ DWORD *EnumerationContext,
+ PLSAPR_TRUSTED_ENUM_BUFFER_EX EnumerationBuffer,
+ DWORD PreferedMaximumLength)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 51 */
+NTSTATUS LsarCreateTrustedDomainEx(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
+ PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthentificationInformation,
+ ACCESS_MASK DesiredAccess,
+ LSAPR_HANDLE *TrustedDomainHandle)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 52 */
+NTSTATUS LsarSetPolicyReplicationHandle(
+ handle_t hBinding,
+ PLSAPR_HANDLE PolicyHandle)
+{
+ /* Deprecated */
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 53 */
+NTSTATUS LsarQueryDomainInformationPolicy(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ POLICY_INFORMATION_CLASS InformationClass,
+ unsigned long *PolicyInformation)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 54 */
+NTSTATUS LsarSetDomainInformationPolicy(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ POLICY_INFORMATION_CLASS InformationClass,
+ unsigned long PolicyInformation)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 55 */
+NTSTATUS LsarOpenTrustedDomainByName(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PRPC_UNICODE_STRING TrustedDomainName,
+ ACCESS_MASK DesiredAccess,
+ LSAPR_HANDLE *TrustedDomainHandle)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 56 */
+NTSTATUS LsarTestCall(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 57 */
+NTSTATUS LsarLookupSids2(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ 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)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 58 */
+NTSTATUS LsarLookupNames2(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ DWORD Count,
+ PRPC_UNICODE_STRING Names,
+ PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+ PLSAPR_TRANSLATED_SID_EX TranslatedSids,
+ LSAP_LOOKUP_LEVEL LookupLevel,
+ DWORD *MappedCount,
+ DWORD LookupOptions,
+ DWORD ClientRevision)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 59 */
+NTSTATUS LsarCreateTrustedDomainEx2(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
+ PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthentificationInformation,
+ ACCESS_MASK DesiredAccess,
+ LSAPR_HANDLE *TrustedDomainHandle)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 60 */
+NTSTATUS CredrWrite(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 61 */
+NTSTATUS CredrRead(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 62 */
+NTSTATUS CredrEnumerate(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 63 */
+NTSTATUS CredrWriteDomainCredentials(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 64 */
+NTSTATUS CredrReadDomainCredentials(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 65 */
+NTSTATUS CredrDelete(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 66 */
+NTSTATUS CredrGetTargetInfo(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 67 */
+NTSTATUS CredrProfileLoaded(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 68 */
+NTSTATUS LsarLookupNames3(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ DWORD Count,
+ PRPC_UNICODE_STRING Names,
+ PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+ PLSAPR_TRANSLATED_SID_EX2 TranslatedSids,
+ LSAP_LOOKUP_LEVEL LookupLevel,
+ DWORD *MappedCount,
+ DWORD LookupOptions,
+ DWORD ClientRevision)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 69 */
+NTSTATUS CredrGetSessionTypes(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 70 */
+NTSTATUS LsarRegisterAuditEvent(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 71 */
+NTSTATUS LsarGenAuditEvent(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 72 */
+NTSTATUS LsarUnregisterAuditEvent(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 73 */
+NTSTATUS LsarQueryForestTrustInformation(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PLSA_UNICODE_STRING TrustedDomainName,
+ LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
+ PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 74 */
+NTSTATUS LsarSetForestTrustInformation(
+ handle_t hBinding,
+ LSAPR_HANDLE PolicyHandle,
+ PLSA_UNICODE_STRING TrustedDomainName,
+ LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
+ PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo,
+ BOOL CheckOnly,
+ PLSA_FOREST_TRUST_COLLISION_INFORMATION *CollisionInfo)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 75 */
+NTSTATUS CredrRename(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 76 */
+NTSTATUS LsarLookupSids3(
+ handle_t hBinding,
+ 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)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 77 */
+NTSTATUS LsarLookupNames4(
+ handle_t hBinding,
+ handle_t RpcHandle,
+ DWORD Count,
+ PRPC_UNICODE_STRING Names,
+ PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+ PLSAPR_TRANSLATED_SID_EX2 TranslatedSids,
+ LSAP_LOOKUP_LEVEL LookupLevel,
+ DWORD *MappedCount,
+ DWORD LookupOptions,
+ DWORD ClientRevision)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 78 */
+NTSTATUS LsarOpenPolicySce(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 79 */
+NTSTATUS LsarAdtRegisterSecurityEventSource(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 80 */
+NTSTATUS LsarAdtUnregisterSecurityEventSource(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 81 */
+NTSTATUS LsarAdtReportSecurityEvent(
+ handle_t hBinding)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
/* EOF */
Modified: trunk/reactos/dll/win32/lsasrv/lsasrv.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/lsasrv/lsasrv.rb…
==============================================================================
--- trunk/reactos/dll/win32/lsasrv/lsasrv.rbuild [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/lsasrv/lsasrv.rbuild [iso-8859-1] Sat Aug 2 10:45:59 2008
@@ -5,9 +5,10 @@
<define name="WINVER">0x600</define>
<define name="_WIN32_WINNT">0x0600</define>
<library>lsa_server</library>
- <library>ntdll</library>
+ <library>wine</library>
<library>kernel32</library>
<library>rpcrt4</library>
+ <library>ntdll</library>
<library>pseh</library>
<file>lsarpc.c</file>
<file>lsasrv.c</file>
Modified: trunk/reactos/include/reactos/idl/lsa.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/idl/lsa.id…
==============================================================================
--- trunk/reactos/include/reactos/idl/lsa.idl [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/idl/lsa.idl [iso-8859-1] Sat Aug 2 10:45:59 2008
@@ -2,9 +2,590 @@
* Local Security Authority interface definition
*/
-#include "include/reactos/idl/wtypes.idl"
-
-#define LSA_HANDLE unsigned long
+#include <ms-dtyp.idl>
+
+typedef [context_handle] unsigned long LSAPR_HANDLE;
+typedef LSAPR_HANDLE *PLSAPR_HANDLE;
+
+cpp_quote("#ifndef _WINNT_H");
+typedef LARGE_INTEGER LUID;
+cpp_quote("#endif");
+
+cpp_quote("#ifndef _NTDEF_");
+
+typedef long NTSTATUS;
+
+typedef struct _STRING {
+ WORD Length;
+ WORD MaximumLength;
+ [size_is(MaximumLength), length_is(Length)] LPSTR Buffer;
+} STRING, *PSTRING;
+
+cpp_quote("#endif");
+
+typedef struct _LSAPR_ACL {
+ BYTE AclRevision;
+ BYTE Sbz1;
+ WORD AclSize;
+ [size_is(AclSize - 4)] BYTE Dummy1[*];
+} LSAPR_ACL, *PLSAPR_ACL;
+
+typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
+
+typedef struct _LSAPR_SECURITY_DESCRIPTOR {
+ BYTE Revision;
+ BYTE Sbz1;
+ SECURITY_DESCRIPTOR_CONTROL Control;
+ PRPC_SID Owner;
+ PRPC_SID Group;
+ PLSAPR_ACL Sacl;
+ PLSAPR_ACL Dacl;
+} LSAPR_SECURITY_DESCRIPTOR, *PLSAPR_SECURITY_DESCRIPTOR;
+
+cpp_quote("#if 0");
+
+typedef enum _SECURITY_IMPERSONATION_LEVEL {
+ SecurityAnonymous = 0,
+ SecurityIdentification,
+ SecurityImpersonation,
+ SecurityDelegation,
+} SECURITY_IMPERSONATION_LEVEL, *PSECURITY_IMPERSONATION_LEVEL;
+
+typedef BYTE SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;
+
+typedef struct _SECURITY_QUALITY_OF_SERVICE {
+ DWORD Length;
+ SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
+ SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
+ BYTE EffectiveOnly;
+} SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE;
+
+cpp_quote("#endif");
+
+typedef struct _LSAPR_OBJECT_ATTRIBUTES {
+ DWORD Length;
+ BYTE *RootDirectory;
+ PSTRING ObjectName;
+ DWORD Attributes;
+ PLSAPR_SECURITY_DESCRIPTOR SecurityDescriptor;
+ PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService;
+} LSAPR_OBJECT_ATTRIBUTES, *PLSAPR_OBJECT_ATTRIBUTES;
+
+typedef unsigned long ACCESS_MASK;
+
+typedef unsigned long SECURITY_INFORMATION;
+
+typedef struct _LSAPR_POLICY_PRIVILEGE_DEF {
+ RPC_UNICODE_STRING Name;
+ LUID LocalValue;
+} LSAPR_POLICY_PRIVILEGE_DEF, *PLSAPR_POLICY_PRIVILEGE_DEF;
+
+typedef struct _LSAPR_PRIVILEGE_ENUM_BUFFER {
+ DWORD Entries;
+ [size_is(Entries)] PLSAPR_POLICY_PRIVILEGE_DEF Privileges;
+} LSAPR_PRIVILEGE_ENUM_BUFFER, *PLSAPR_PRIVILEGE_ENUM_BUFFER;
+
+typedef struct _LSAPR_ACCOUNT_INFORMATION {
+ PRPC_SID Sid;
+} LSAPR_ACCOUNT_INFORMATION, *PLSAPR_ACCOUNT_INFORMATION;
+
+typedef struct _LSAPR_ACCOUNT_ENUM_BUFFER {
+ DWORD EntriesRead;
+ [size_is(EntriesRead)] PLSAPR_ACCOUNT_INFORMATION Information;
+} LSAPR_ACCOUNT_ENUM_BUFFER, *PLSAPR_ACCOUNT_ENUM_BUFFER;
+
+cpp_quote("#ifndef _NTSECAPI_H");
+typedef RPC_UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
+cpp_quote("#endif");
+
+typedef struct _LSAPR_TRUST_INFORMATION {
+ RPC_UNICODE_STRING Name;
+ PRPC_SID Sid;
+} LSAPR_TRUST_INFORMATION, *PLSAPR_TRUST_INFORMATION;
+
+typedef struct _LSAPR_REFERENCED_DOMAIN_LIST {
+ DWORD Entries;
+ [size_is(Entries)] PLSAPR_TRUST_INFORMATION Domains;
+ DWORD MaxEntries;
+} LSAPR_REFERENCED_DOMAIN_LIST, *PLSAPR_REFERENCED_DOMAIN_LIST;
+
+cpp_quote("#if 0");
+
+typedef enum _SID_NAME_USE {
+ SidTypeUser = 1,
+ SidTypeGroup,
+ SidTypeDomain,
+ SidTypeAlias,
+ SidTypeWellKnownGroup,
+ SidTypeDeletedAccount,
+ SidTypeInvalid,
+ SidTypeUnknown,
+ SidTypeComputer,
+ SidTypeLabel,
+} SID_NAME_USE, *PSID_NAME_USE;
+
+cpp_quote("#endif");
+
+cpp_quote("#ifndef _NTDEF_");
+
+typedef struct _LSA_TRANSLATED_SID {
+ SID_NAME_USE Use;
+ DWORD RelativeId;
+ LONG DomainIndex;
+} LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID;
+
+cpp_quote("#endif");
+
+typedef struct _LSAPR_TRANSLATED_SIDS {
+ DWORD Entries;
+ [size_is(Entries)] PLSA_TRANSLATED_SID Sids;
+} LSAPR_TRANSLATED_SIDS, *PLSAPR_TRANSLATED_SIDS;
+
+typedef enum _LSAP_LOOKUP_LEVEL {
+ LsapLookupWksta = 1,
+ LsapLookupPDC,
+ LsapLookupTDL,
+ LsapLookupGC,
+ LsapLookupXForestReferral,
+ LsapLookupXForestResolve,
+ LsapLookupRODCReferralToFullDC,
+} LSAP_LOOKUP_LEVEL, *PLSAP_LOOKUP_LEVEL;
+
+typedef struct _LSAPR_SID_INFORMATION {
+ PRPC_SID Sid;
+} LSAPR_SID_INFORMATION, *PLSAPR_SID_INFORMATION;
+
+typedef struct _LSAPR_SID_ENUM_BUFFER {
+ DWORD Entries;
+ [size_is(Entries)] PLSAPR_SID_INFORMATION SidInfo;
+} LSAPR_SID_ENUM_BUFFER, *PLSAPR_SID_ENUM_BUFFER;
+
+typedef struct _LSAPR_TRANSLATED_NAME {
+ SID_NAME_USE Use;
+ RPC_UNICODE_STRING Name;
+ LONG DomainIndex;
+} LSAPR_TRANSLATED_NAME, *PLSAPR_TRANSLATED_NAME;
+
+typedef struct _LSAPR_TRANSLATED_NAMES {
+ DWORD Entries;
+ [size_is(Entries)] PLSAPR_TRANSLATED_NAME Names;
+} LSAPR_TRANSLATED_NAMES, *PLSAPR_TRANSLATED_NAMES;
+
+typedef struct _LSAPR_TRANSLATED_NAME_EX {
+ SID_NAME_USE Use;
+ RPC_UNICODE_STRING Name;
+ LONG DomainIndex;
+ DWORD Flags;
+} LSAPR_TRANSLATED_NAME_EX, *PLSAPR_TRANSLATED_NAME_EX;
+
+typedef struct _LSAPR_TRANSLATED_NAMES_EX {
+ DWORD Entries;
+ [size_is(Entries)] PLSAPR_TRANSLATED_NAME_EX Names;
+} LSAPR_TRANSLATED_NAMES_EX, *PLSAPR_TRANSLATED_NAMES_EX;
+
+typedef struct _LSAPR_TRANSLATED_SID_EX {
+ SID_NAME_USE Use;
+ DWORD RelativeId;
+ LONG DomainIndex;
+ DWORD Flags;
+} LSAPR_TRANSLATED_SID_EX, *PLSAPR_TRANSLATED_SID_EX;
+
+typedef struct _LSAPR_TRANSLATED_SIDS_EX {
+ DWORD Entries;
+ [size_is(Entries)] PLSAPR_TRANSLATED_SID_EX Sids;
+} LSAPR_TRANSLATED_SIDS_EX, *PLSAPR_TRANSLATED_SIDS_EX;
+
+typedef struct _LSAPR_TRANSLATED_SID_EX2 {
+ SID_NAME_USE Use;
+ PRPC_SID Sid;
+ LONG DomainIndex;
+ DWORD Flags;
+} LSAPR_TRANSLATED_SID_EX2, *PLSAPR_TRANSLATED_SID_EX2;
+
+typedef struct _LSAPR_TRANSLATED_SIDS_EX2 {
+ DWORD Entries;
+ [size_is(Entries)] PLSAPR_TRANSLATED_SID_EX2 Sids;
+} LSAPR_TRANSLATED_SIDS_EX2, *PLSAPR_TRANSLATED_SIDS_EX2;
+
+typedef LSAPR_TRUST_INFORMATION LSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC;
+
+typedef struct _LSAPR_SR_SECURITY_DESCRIPTOR {
+ DWORD Length;
+ [size_is(Length)] BYTE *SecurityDescriptor;
+} LSAPR_SR_SECURITY_DESCRIPTOR, *PLSAPR_SR_SECURITY_DESCRIPTOR;
+
+cpp_quote("#ifndef _NTSECAPI_H");
+typedef enum _POLICY_INFORMATION_CLASS {
+ PolicyAuditLogInformation = 1,
+ PolicyAuditEventsInformation,
+ PolicyPrimaryDomainInformation,
+ PolicyPdAccountInformation,
+ PolicyAccountDomainInformation,
+ PolicyLsaServerRoleInformation,
+ PolicyReplicaSourceInformation,
+ PolicyDefaultQuotaInformation,
+ PolicyModificationInformation,
+ PolicyAuditFullSetInformation,
+ PolicyAuditFullQueryInformation,
+ PolicyDnsDomainInformation,
+ PolicyDnsDomainInformationInt,
+ PolicyLocalAccountDomainInformation,
+ PolicyLastEntry,
+} POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS;
+
+typedef struct _POLICY_AUDIT_LOG_INFO {
+ DWORD AuditLogPercentFull;
+ DWORD MaximumLogSize;
+ LARGE_INTEGER AuditRetentionPeriod;
+ BYTE AuditLogFullShutdownInProgress;
+ LARGE_INTEGER TimeToShutdown;
+ DWORD NextAuditRecordId;
+} POLICY_AUDIT_LOG_INFO, *PPOLICY_AUDIT_LOG_INFO;
+cpp_quote("#endif");
+
+typedef struct _LSAPR_POLICY_AUDIT_EVENTS_INFO {
+ BYTE AuditingMode;
+ [size_is(MaximumAuditEventCount)] DWORD *EventAuditingOptions;
+ DWORD MaximumAuditEventCount;
+} LSAPR_POLICY_AUDIT_EVENTS_INFO, *PLSAPR_POLICY_AUDIT_EVENTS_INFO;
+
+typedef struct _LSAPR_POLICY_PRIMARY_DOM_INFO {
+ RPC_UNICODE_STRING Name;
+ PRPC_SID Sid;
+} LSAPR_POLICY_PRIMARY_DOM_INFO, *PLSAPR_POLICY_PRIMARY_DOM_INFO;
+
+typedef struct _LSAPR_POLICY_ACCOUNT_DOM_INFO {
+ RPC_UNICODE_STRING DomainName;
+ PRPC_SID Sid;
+} LSAPR_POLICY_ACCOUNT_DOM_INFO, *PLSAPR_POLICY_ACCOUNT_DOM_INFO;
+
+typedef struct _LSAPR_POLICY_PD_ACCOUNT_INFO {
+ RPC_UNICODE_STRING Name;
+} LSAPR_POLICY_PD_ACCOUNT_INFO, *PLSAPR_POLICY_PD_ACCOUNT_INFO;
+
+cpp_quote("#ifndef _NTSECAPI_H");
+typedef enum _POLICY_LSA_SERVER_ROLE {
+ PolicyServerRoleBackup = 2,
+ PolicyServerRolePrimary,
+} POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE;
+
+typedef struct _POLICY_LSA_SERVER_ROLE_INFO {
+ POLICY_LSA_SERVER_ROLE LsaServerRole;
+} POLICY_LSA_SERVER_ROLE_INFO, *PPOLICY_LSA_SERVER_ROLE_INFO;
+cpp_quote("#endif");
+
+typedef struct _POLICY_LSA_REPLICA_SRCE_INFO {
+ RPC_UNICODE_STRING ReplicaSource;
+ RPC_UNICODE_STRING ReplicaAccountName;
+} POLICY_LSA_REPLICA_SRCE_INFO, *PPOLICY_LSA_REPLICA_SRCE_INFO;
+
+cpp_quote("#ifndef _WINNT_H");
+typedef struct _QUOTA_LIMITS {
+ INT64 PagedPoolLimit;
+ INT64 NonPagedPoolLimit;
+ INT64 MinimumWorkingSetSize;
+ INT64 MaximumWorkingSetSize;
+ INT64 PagefileLimit;
+ LARGE_INTEGER TimeLimit;
+} QUOTA_LIMITS, *PQUOTA_LIMITS;
+cpp_quote("#endif");
+
+cpp_quote("#ifndef _NTSECAPI_H");
+typedef struct _POLICY_DEFAULT_QUOTA_INFO {
+ QUOTA_LIMITS QuotaLimits;
+} POLICY_DEFAULT_QUOTA_INFO, *PPOLICY_DEFAULT_QUOTA_INFO;
+
+typedef struct _POLICY_MODIFICATION_INFO {
+ LARGE_INTEGER ModifiedId;
+ LARGE_INTEGER DatabaseCreationTime;
+} POLICY_MODIFICATION_INFO, *PPOLICY_MODIFICATION_INFO;
+cpp_quote("#endif");
+
+typedef struct _POLICY_FULL_SET_INFO {
+ BOOL ShutDownOnFull;
+} POLICY_FULL_SET_INFO, *PPOLICY_FULL_SET_INFO;
+
+cpp_quote("#ifndef _NTSECAPI_H");
+typedef struct _POLICY_AUDIT_FULL_QUERY_INFO {
+ BOOL ShutDownOnFull;
+ BOOL LogIsFull;
+} POLICY_AUDIT_FULL_QUERY_INFO, *PPOLICY_AUDIT_FULL_QUERY_INFO;
+cpp_quote("#endif");
+
+typedef struct _LSAPR_POLICY_DNS_DOMAIN_INFO {
+ RPC_UNICODE_STRING Name;
+ RPC_UNICODE_STRING DnsDomainName;
+ RPC_UNICODE_STRING DnsForestName;
+ GUID DomainGuid;
+ PRPC_SID Sid;
+} LSAPR_POLICY_DNS_DOMAIN_INFO, *PLSAPR_POLICY_DNS_DOMAIN_INFO;
+
+/*typedef
+[switch_type(POLICY_INFORMATION_CLASS)] union _LSAPR_POLICY_INFORMATION {
+ [case(PolicyAuditLogInformation)] POLICY_AUDIT_LOG_INFO PolicyAuditLogInfo;
+ [case(PolicyAuditEventsInformation)] POLICY_AUDIT_EVENTS_INFO PolicyAuditEventsInfo;
+ [case(PolicyPrimaryDomainInformation)] POLICY_PRIMARY_DOM_INFO PolicyPrimaryDomInfo;
+ [case(PolicyPdAccountInformation)] POLICY_PD_ACCOUNT_INFO PolicyPdAccountInfo;
+ [case(PolicyAccountDomainInformation)] POLICY_ACCOUNT_DOM_INFO
PolicyAccountDomainInfo;
+ [case(PolicyLsaServerRoleInformation)] POLICY_LSA_SERVER_ROLE_INFO
PolicyServerRoleInfo;
+ [case(PolicyReplicaSourceInformation)] POLICY_REPLICA_SRCE_INFO
PolicyReplicaSourceInfo;
+ [case(PolicyDefaultQuotaInformation)] POLICY_DEFAULT_QUOTA_INFO
PolicyDefaultQuotaInfo;
+ [case(PolicyModificationInformation)] POLICY_MODIFICATION_INFO
PolicyModificationInfo;
+ [case(PolicyAuditFullSetInformation)] POLICY_AUDIT_FULL_SET_INFO
PolicyAuditFullSetInfo;
+ [case(PolicyAuditFullQueryInformation)] POLICY_AUDIT_FULL_QUERY_INFO
PolicyAuditFullQueryInfo;
+ [case(PolicyDnsDomainInformation)] LSAPR_DNS_DOMAIN_INFO PolicyDnsDomainInfo;
+ [case(PolicyDnsDomainInformationInt)] LSAPR_DNS_DOMAIN_INFO PolicyDnsDomainInfoInt;
+ [case(PolicyLocalAccountDomainInformation)] LSAPR_POLICY_ACCOUNT_DOM_INFO
PolicyLocalAccountDomainInfo;
+} LSAPR_POLICY_INFORMATION, *PLSAPR_POLICY_INFORMATION;*/
+
+typedef struct _LSAPR_TRUSTED_ENUM_BUFFER {
+ DWORD EntriesRead;
+ [size_is(EntriesRead)] PLSAPR_TRUST_INFORMATION Information;
+} LSAPR_TRUSTED_ENUM_BUFFER, *PLSAPR_TRUSTED_ENUM_BUFFER;
+
+cpp_quote("#ifndef _NTSECAPI_H");
+typedef enum _TRUSTED_INFORMATION_CLASS {
+ TrustedDomainNameInformation = 1,
+ TrustedControllersInformation,
+ TrustedPosixOffsetInformation,
+ TrustedPasswordInformation,
+ TrustedDomainInformationBasic,
+ TrustedDomainInformationEx,
+ TrustedDomainAuthInformation,
+ TrustedDomainFullInformation,
+ TrustedDomainAuthInformationInternal,
+ TrustedDomainFullInformationInternal,
+ TrustedDomainInformationEx2Internal,
+ TrustedDomainFullInformation2Internal,
+ TrustedDomainSupportedEncryptionTypes,
+} TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS;
+cpp_quote("#endif");
+
+typedef struct _LSAPR_TRUSTED_DOMAIN_NAME_INFO {
+ RPC_UNICODE_STRING Name;
+} LSAPR_TRUSTED_DOMAIN_NAME_INFO, *PLSAPR_TRUSTED_DOMAIN_NAME_INFO;
+
+typedef struct _LSAPR_TRUSTED_CONTROLLERS_INFO {
+ DWORD Entries;
+ [size_is(Entries)] PRPC_UNICODE_STRING Names;
+} LSAPR_TRUSTED_CONTROLLERS_INFO, *PLSAPR_TRUSTED_CONTROLLERS_INFO;
+
+cpp_quote("#ifndef _NTSECAPI_H");
+typedef struct _TRUSTED_POSIX_OFFSET_INFO {
+ DWORD Offset;
+} TRUSTED_POSIX_OFFSET_INFO, *PTRUSTED_POSIX_OFFSET_INFO;
+cpp_quote("#endif");
+
+typedef struct _LSAPR_CR_CIPHER_VALUE {
+ DWORD Length;
+ DWORD MaximumLength;
+ [size_is(MaximumLength), length_is(Length)] BYTE *Buffer;
+} LSAPR_CR_CIPHER_VALUE, *PLSAPR_CR_CIPHER_VALUE;
+
+typedef struct _LSAPR_TRUSTED_PASSWORD_INFO {
+ PLSAPR_CR_CIPHER_VALUE Password;
+ PLSAPR_CR_CIPHER_VALUE OldPassword;
+} LSAPR_TRUSTED_PASSWORD_INFO, *PLSAPR_TRUSTED_PASSWORD_INFO;
+
+typedef struct _LSAPR_USER_RIGHT_SET {
+ DWORD Entries;
+ [size_is(Entries)] PRPC_UNICODE_STRING UserRights;
+} LSAPR_USER_RIGHT_SET, *PLSAPR_USER_RIGHT_SET;
+
+cpp_quote("#ifndef _NTSECAPI_H");
+typedef enum _POLICY_DOMAIN_INFORMATION_CLASS {
+ PolicyDomainQualityOfServiceInformation = 1,
+ PolicyDomainEfsInformation = 2,
+ PolicyDomainKerberosTicketInformation = 3,
+} POLICY_DOMAIN_INFORMATION_CLASS, *PPOLICY_DOMAIN_INFORMATION_CLASS;
+
+typedef struct _POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO {
+ DWORD QualityOfService;
+} POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO, *PPOLICY_DOMAIN_QUALITY_OF_SERVICE_INFO;
+cpp_quote("#endif");
+
+typedef struct _LSAPR_POLICY_DOMAIN_EFS_INFO {
+ DWORD InfoLength;
+ [size_is(InfoLength)] BYTE *EfsBlob;
+} LSAPR_POLICY_DOMAIN_EFS_INFO, *PLSAPR_POLICY_DOMAIN_EFS_INFO;
+
+cpp_quote("#ifndef _NTSECAPI_H");
+typedef struct _POLICY_DOMAIN_KERBEROS_TICKET_INFO {
+ DWORD AuthenticationOptions;
+ LARGE_INTEGER MaxServiceTicketAge;
+ LARGE_INTEGER MaxTicketAge;
+ LARGE_INTEGER MaxRenewAge;
+ LARGE_INTEGER MaxClockSkew;
+ LARGE_INTEGER Reserved;
+} POLICY_DOMAIN_KERBEROS_TICKET_INFO, *PPOLICY_DOMAIN_KERBEROS_TICKET_INFO;
+cpp_quote("#endif");
+
+typedef
+[switch_type(POLICY_DOMAIN_INFORMATION_CLASS)] union _LSAPR_POLICY_DOMAIN_INFORMATION {
+ [case(PolicyDomainQualityOfServiceInformation)] POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO
PolicyDomainQualityOfServiceInfo;
+ [case(PolicyDomainEfsInformation)] LSAPR_POLICY_DOMAIN_EFS_INFO PolicyDomainEfsInfo;
+ [case(PolicyDomainKerberosTicketInformation)] POLICY_DOMAIN_KERBEROS_TICKET_INFO
PolicyDomainKerbTicketInfo;
+} LSAPR_POLICY_DOMAIN_INFORMATION, *PLSAPR_POLICY_DOMAIN_INFORMATION;
+
+typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX {
+ RPC_UNICODE_STRING Name;
+ RPC_UNICODE_STRING FlatName;
+ PRPC_SID Sid;
+ DWORD TrustDirection;
+ DWORD TrustType;
+ DWORD TrustAttributes;
+} LSAPR_TRUSTED_DOMAIN_INFORMATION_EX, *PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX;
+
+typedef struct _LSAPR_TRUSTED_ENUM_BUFFER_EX {
+ DWORD EntriesRead;
+ [size_is(EntriesRead)] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX EnumerationBuffer;
+} LSAPR_TRUSTED_ENUM_BUFFER_EX, *PLSAPR_TRUSTED_ENUM_BUFFER_EX;
+
+typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 {
+ RPC_UNICODE_STRING Name;
+ RPC_UNICODE_STRING FlatName;
+ PRPC_SID Sid;
+ DWORD TrustDirection;
+ DWORD TrustType;
+ DWORD TrustAttributes;
+ DWORD ForestTrustLength;
+ [size_is(ForestTrustLength)] BYTE *ForestTrustInfo;
+} LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2, *PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX2;
+
+typedef struct _LSAPR_AUTH_INFORMATION {
+ LARGE_INTEGER LastUpdateTime;
+ DWORD AuthType;
+ DWORD AuthInfoLength;
+ [size_is(AuthInfoLength)] BYTE *AuthInfo;
+} LSAPR_AUTH_INFORMATION, *PLSAPR_AUTH_INFORMATION;
+
+typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION {
+ DWORD IncomingAuthInfos;
+ PLSAPR_AUTH_INFORMATION IncomingAuthenticationInformation;
+ PLSAPR_AUTH_INFORMATION IncomingPreviousAuthenticationInformation;
+ DWORD OutgoingAuthInfos;
+ PLSAPR_AUTH_INFORMATION OutgoingAuthenticationInformation;
+ PLSAPR_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation;
+} LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION, *PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION;
+
+typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_BLOB {
+ DWORD AuthSize;
+ [size_is(AuthSize)] BYTE *AuthBlob;
+} LSAPR_TRUSTED_DOMAIN_AUTH_BLOB, *PLSAPR_TRUSTED_DOMAIN_AUTH_BLOB;
+
+typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL {
+ LSAPR_TRUSTED_DOMAIN_AUTH_BLOB AuthBlob;
+} LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL,
*PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL;
+
+typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION {
+ LSAPR_TRUSTED_DOMAIN_INFORMATION_EX Information;
+ TRUSTED_POSIX_OFFSET_INFO PosixOffset;
+ LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation;
+} LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION, *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION;
+
+typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL {
+ LSAPR_TRUSTED_DOMAIN_INFORMATION_EX Information;
+ TRUSTED_POSIX_OFFSET_INFO PosixOffset;
+ LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthInformation;
+} LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL,
*PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL;
+
+typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2 {
+ LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 Information;
+ TRUSTED_POSIX_OFFSET_INFO PosixOffset;
+ LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation;
+} LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2, *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2;
+
+typedef struct _TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES {
+ DWORD SupportedEncryptionTypes;
+} TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES,
*PTRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES;
+
+typedef
+[switch_type(TRUSTED_INFORMATION_CLASS)] union _LSAPR_TRUSTED_DOMAIN_INFO {
+ [case(TrustedDomainNameInformation)] LSAPR_TRUSTED_DOMAIN_NAME_INFO
TrustedDomainNameInfo;
+ [case(TrustedControllersInformation)] LSAPR_TRUSTED_CONTROLLERS_INFO
TrustedControllersInfo;
+ [case(TrustedPosixOffsetInformation)] TRUSTED_POSIX_OFFSET_INFO
TrustedPosixOffsetInfo;
+ [case(TrustedPasswordInformation)] LSAPR_TRUSTED_PASSWORD_INFO TrustedPasswordInfo;
+ [case(TrustedDomainInformationBasic)] LSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC
TrustedDomainInfoBasic;
+ [case(TrustedDomainInformationEx)] LSAPR_TRUSTED_DOMAIN_INFORMATION_EX
TrustedDomainInfoEx;
+ [case(TrustedDomainAuthInformation)] LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION
TrustedAuthInfo;
+ [case(TrustedDomainFullInformation)] LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION
TrustedFullInfo;
+ [case(TrustedDomainAuthInformationInternal)]
LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL TrustedAuthInfoInternal;
+ [case(TrustedDomainFullInformationInternal)]
LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL TrustedFullInfoInternal;
+ [case(TrustedDomainInformationEx2Internal)] LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2
TrustedDomainInfoEx2;
+ [case(TrustedDomainFullInformation2Internal)] LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2
TrustedFullInfo2;
+ [case(TrustedDomainSupportedEncryptionTypes)]
TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES TrustedDomainSETs;
+} LSAPR_TRUSTED_DOMAIN_INFO, *PLSAPR_TRUSTED_DOMAIN_INFO;
+
+cpp_quote("#ifndef _WINNT_H");
+typedef struct _LUID {
+ ULONG LowPart;
+ LONG HightPart;
+} LUID, *PLUID;
+cpp_quote("#endif");
+
+typedef struct _LSAPR_LUID_AND_ATTRIBUTES {
+ LUID Luid;
+ DWORD Attributes;
+} LSAPR_LUID_AND_ATTRIBUTES, *PLSAPR_LUID_AND_ATTRIBUTES;
+
+typedef struct _LSAPR_PRIVILEGE_SET {
+ DWORD PrivilegeCount;
+ DWORD Control;
+ [size_is(PrivilegeCount)] LSAPR_LUID_AND_ATTRIBUTES Privilege[*];
+} LSAPR_PRIVILEGE_SET, *PLSAPR_PRIVILEGE_SET;
+
+cpp_quote("#ifndef _NTSECAPI_H");
+typedef enum _LSA_FOREST_TRUST_RECORD_TYPE {
+ ForestTrustTopLevelName = 0,
+ ForestTrustTopLevelNameEx = 1,
+ ForestTrustDomainInfo = 2,
+} LSA_FOREST_TRUST_RECORD_TYPE;
+
+typedef struct _LSA_FOREST_TRUST_BINARY_DATA {
+ DWORD Length;
+ [size_is(Length)] BYTE *Buffer;
+} LSA_FOREST_TRUST_BINARY_DATA, *PLSA_FOREST_TRUST_BINARY_DATA;
+
+typedef struct _LSA_FOREST_TRUST_DOMAIN_INFO {
+ PRPC_SID Sid;
+ LSA_UNICODE_STRING DnsName;
+ LSA_UNICODE_STRING NetbiosName;
+} LSA_FOREST_TRUST_DOMAIN_INFO, *PLSA_FOREST_TRUST_DOMAIN_INFO;
+
+typedef struct _LSA_FOREST_TRUST_RECORD {
+ DWORD Flags;
+ LSA_FOREST_TRUST_RECORD_TYPE ForestTrustType;
+ LARGE_INTEGER Time;
+ [switch_type(LSA_FOREST_TRUST_RECORD_TYPE), switch_is(ForestTrustType)] union {
+ [case(ForestTrustTopLevelName, ForestTrustTopLevelNameEx)] LSA_UNICODE_STRING
TopLevelName;
+ [case(ForestTrustDomainInfo)] LSA_FOREST_TRUST_DOMAIN_INFO DomainInfo;
+ [default] LSA_FOREST_TRUST_BINARY_DATA Data;
+ } ForestTrustData;
+} LSA_FOREST_TRUST_RECORD, *PLSA_FOREST_TRUST_RECORD;
+
+typedef struct _LSA_FOREST_TRUST_INFORMATION {
+ DWORD RecordCount;
+ [size_is(RecordCount)] PLSA_FOREST_TRUST_RECORD *Entries;
+} LSA_FOREST_TRUST_INFORMATION, *PLSA_FOREST_TRUST_INFORMATION;
+
+typedef enum _LSA_FOREST_TRUST_COLLISION_RECORD_TYPE {
+ CollisionTdo = 0,
+ CollisionXref,
+ CollisionOther,
+} LSA_FOREST_TRUST_COLLISION_RECORD_TYPE;
+
+typedef struct _LSA_FOREST_TRUST_COLLISION_RECORD {
+ DWORD Index;
+ LSA_FOREST_TRUST_COLLISION_RECORD_TYPE Type;
+ DWORD Flags;
+ LSA_UNICODE_STRING Name;
+} LSA_FOREST_TRUST_COLLISION_RECORD, *PLSA_FOREST_TRUST_COLLISION_RECORD;
+
+typedef struct _LSA_FOREST_TRUST_COLLISION_INFORMATION {
+ DWORD RecordCount;
+ [size_is(RecordCount)] PLSA_FOREST_TRUST_COLLISION_RECORD *Entries;
+} LSA_FOREST_TRUST_COLLISION_INFORMATION, *PLSA_FOREST_TRUST_COLLISION_INFORMATION;
+cpp_quote("#endif");
[
uuid(12345778-1234-abcd-ef00-0123456789ab),
@@ -16,29 +597,591 @@
]
interface lsarpc
{
-/*
- cpp_quote("#if 0")
- typedef [handle, unique] wchar_t *LPWSTR;
- typedef [handle, unique] char *LPSTR;
- cpp_quote("#endif")
- typedef [context_handle] void *LSA_HANDLE;
- typedef LSA_HANDLE *PLSA_HANDLE;
- typedef unsigned int NTSTATUS;
-*/
-
- cpp_quote("#if 0")
- typedef struct _LSA_UNICODE_STRING {
- unsigned short Length;
- unsigned short MaximumLength;
- [size_is(MaximumLength)] wchar_t *Buffer;
- } LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
- cpp_quote("#endif")
-
/* Function 0 */
- NTSTATUS LsarClose(handle_t BindingHandle,
- [in] LSA_HANDLE ObjectHandle);
+ NTSTATUS LsarClose(
+ [in] handle_t hBinding,
+ [in, out] LSAPR_HANDLE *ObjectHandle);
/* Function 1 */
- NTSTATUS LsarDelete(handle_t BindingHandle,
- [in] LSA_HANDLE ObjectHandle);
+ NTSTATUS LsarDelete(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE ObjectHandle);
+
+ /* Function 2 */
+ NTSTATUS LsarEnumeratePrivileges(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in, out] DWORD *EnumerationContext,
+ [out] PLSAPR_PRIVILEGE_ENUM_BUFFER EnumerationBuffer,
+ [in] DWORD PreferedMaximumLength);
+
+ /* Function 3 */
+ NTSTATUS LsarQuerySecurityObject(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE ObjectHandle,
+ [in] SECURITY_INFORMATION SecurityInformation,
+ [out] PLSAPR_SR_SECURITY_DESCRIPTOR *SecurityDescriptor);
+
+ /* Function 4 */
+ NTSTATUS LsarSetSecurityObject(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE ObjectHandle,
+ [in] SECURITY_INFORMATION SecurityInformation,
+ [in] PLSAPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor);
+
+ /* Function 5 */
+ NTSTATUS LsarChangePassword(
+ [in] handle_t hBinding,
+ [in] PRPC_UNICODE_STRING String1,
+ [in] PRPC_UNICODE_STRING String2,
+ [in] PRPC_UNICODE_STRING String3,
+ [in] PRPC_UNICODE_STRING String4,
+ [in] PRPC_UNICODE_STRING String5);
+
+ /* Function 6 */
+ NTSTATUS LsarOpenPolicy(
+ [in] handle_t hBinding,
+ [in, unique] LPWSTR SystemName,
+ [in] PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
+ [in] ACCESS_MASK DesiredAccess,
+ [out] LSAPR_HANDLE *PolicyHandle);
+
+ /* Function 7 */
+ NTSTATUS LsarQueryInformationPolicy(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] POLICY_INFORMATION_CLASS InformationClass,
+ [in] unsigned long PolicyInformation);
+ /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION
PolicyInformation); */
+
+ /* Function 8 */
+ NTSTATUS LsarSetInformationPolicy(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] POLICY_INFORMATION_CLASS InformationClass,
+ [out] unsigned long *PolicyInformation);
+ /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION
*PolicyInformation); */
+
+ /* Function 9 */
+ NTSTATUS LsarClearAuditLog(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE ObjectHandle);
+
+ /* Function 10 */
+ NTSTATUS LsarCreateAccount(
+ [in] handle_t hBinding,
+ [in] PRPC_SID AccountSid,
+ [in] ACCESS_MASK DesiredAccess,
+ [out] LSAPR_HANDLE *AccountHandle);
+
+ /* Function 11 */
+ NTSTATUS LsarEnumerateAccounts(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in, out] DWORD *EnumerationContext,
+ [out] PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer,
+ [in] DWORD PreferedMaximumLength);
+
+ /* Function 12 */
+ NTSTATUS LsarCreateTrustedDomain(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PLSAPR_TRUST_INFORMATION TrustedDomainInformation,
+ [in] ACCESS_MASK DesiredAccess,
+ [out] LSAPR_HANDLE *TrustedDomainHandle);
+
+ /* Function 13 */
+ NTSTATUS LsarEnumerateTrustedDomains(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in, out] DWORD *EnumerationContext,
+ [out] PLSAPR_TRUSTED_ENUM_BUFFER EnumerationBuffer,
+ [in] DWORD PreferedMaximumLength);
+
+ /* Function 14 */
+ NTSTATUS LsarLookupNames(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] DWORD Count,
+ [in, size_is(Count)] PRPC_UNICODE_STRING Names,
+ [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+ [in, out] PLSAPR_TRANSLATED_SIDS TranslatedSids,
+ [in] LSAP_LOOKUP_LEVEL LookupLevel,
+ [in, out] DWORD *MappedCount);
+
+ /* Function 15 */
+ NTSTATUS LsarLookupSids(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
+ [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+ [in, out] PLSAPR_TRANSLATED_NAMES TranslatedNames,
+ [in] LSAP_LOOKUP_LEVEL LookupLevel,
+ [in, out] DWORD *MappedCount);
+
+ /* Function 16 */
+ NTSTATUS LsarCreateSecret(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_UNICODE_STRING SecretName,
+ [in] ACCESS_MASK DesiredAccess,
+ [out] LSAPR_HANDLE *SecretHandle);
+
+ /* Function 17 */
+ NTSTATUS LsarOpenAccount(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_SID AccountSid,
+ [in] ACCESS_MASK DesiredAccess,
+ [out] LSAPR_HANDLE *AccountHandle);
+
+ /* Function 18 */
+ NTSTATUS LsarEnumeratePrivilegesAccount(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE AccountHandle,
+ [out] PLSAPR_PRIVILEGE_SET *Privileges);
+
+ /* Function 19 */
+ NTSTATUS LsarAddPrivilegesToAccount(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE AccountHandle,
+ [in] PLSAPR_PRIVILEGE_SET Privileges);
+
+ /* Function 20 */
+ NTSTATUS LsarRemovePrivilegesFromAccount(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE AccountHandle,
+ [in] BOOL AllPrivileges,
+ [in, unique] PLSAPR_PRIVILEGE_SET Privileges);
+
+ /* Function 21 */
+ NTSTATUS LsarGetQuotasForAccount(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE AccountHandle,
+ [out] PQUOTA_LIMITS QuotaLimits);
+
+ /* Function 22 */
+ NTSTATUS LsarSetQuotasForAccount(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE AccountHandle,
+ [in] PQUOTA_LIMITS QuotaLimits);
+
+ /* Function 23 */
+ NTSTATUS LsarGetSystemAccessAccount(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE AccountHandle,
+ [out] ACCESS_MASK *SystemAccess);
+
+ /* Function 24 */
+ NTSTATUS LsarSetSystemAccessAccount(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE AccountHandle,
+ [in] ACCESS_MASK SystemAccess);
+
+ /* Function 25 */
+ NTSTATUS LsarOpenTrustedDomain(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_SID TrustedDomainSid,
+ [in] ACCESS_MASK DesiredAccess,
+ [out] LSAPR_HANDLE *TrustedDomainHandle);
+
+ /* Function 26 */
+ NTSTATUS LsarQueryInfoTrustedDomain(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE TrustedDomainHandle,
+ [in] TRUSTED_INFORMATION_CLASS InformationClass,
+ [out, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO
*TrustedDomainInformation);
+
+ /* Function 27 */
+ NTSTATUS LsarSetInformationTrustedDomain(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE TrustedDomainHandle,
+ [in] TRUSTED_INFORMATION_CLASS InformationClass,
+ [in, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO
TrustedDomainInformation);
+
+ /* Function 28 */
+ NTSTATUS LsarOpenSecret(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_UNICODE_STRING SecretName,
+ [in] ACCESS_MASK DesiredAccess,
+ [out] LSAPR_HANDLE *SecretHandle);
+
+ /* Function 29 */
+ NTSTATUS LsarSetSecret(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE *SecretHandle,
+ [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue,
+ [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedOldValue);
+
+ /* Function 30 */
+ NTSTATUS LsarQuerySecret(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE SecretHandle,
+ [in, out, unique] PLSAPR_CR_CIPHER_VALUE *EncryptedCurrentValue,
+ [in, out, unique] PLARGE_INTEGER CurrentValueSetTime,
+ [in, out, unique] PLSAPR_CR_CIPHER_VALUE *EncryptedOldValue,
+ [in, out, unique] PLARGE_INTEGER OldValueSetTime);
+
+ /* Function 31 */
+ NTSTATUS LsarLookupPrivilegeValue(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_UNICODE_STRING Name,
+ [out] PLUID Value);
+
+ /* Function 32 */
+ NTSTATUS LsarLookupPrivilegeName(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PLUID Value,
+ [out] PRPC_UNICODE_STRING *Name);
+
+ /* Function 33 */
+ NTSTATUS LsarLookupPrivilegeDisplayName(
+ [in] handle_t hBinding,
+ /*[in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_UNICODE_STRING Name,
+ [in] USHORT ClientLanguage,
+ [in] USHORT ClientSystemDefaultLanguage,
+ [out] PRPC_UNICODE_STRING *DisplayName,*/
+ [out] USHORT *LanguageReturned);
+
+ /* Function 34 */
+ NTSTATUS LsarDeleteObject(
+ [in] handle_t hBinding,
+ [in, out] LSAPR_HANDLE *ObjectHandle);
+
+cpp_quote("#if _WIN32_WINNT >= 0x0351")
+
+ /* Function 35 */
+ NTSTATUS LsarEnumerateAccountsWithUserRight(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in, unique] PRPC_UNICODE_STRING UserRight,
+ [out] PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer);
+
+ /* Function 36 */
+ NTSTATUS LsarEnmuerateAccountRights(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_SID AccountSid,
+ [out] PLSAPR_USER_RIGHT_SET UserRights);
+
+ /* Function 37 */
+ NTSTATUS LsarAddAccountRights(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_SID AccountSid,
+ [in] PLSAPR_USER_RIGHT_SET UserRights);
+
+ /* Function 38 */
+ NTSTATUS LsarRemoveAccountRights(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_SID AccountSid,
+ [in] BOOL AllRights,
+ [in] PLSAPR_USER_RIGHT_SET UserRights);
+
+ /* Function 39 */
+ NTSTATUS LsarQueryTrustedDomainInfo(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_SID TrustedDomainSid,
+ [in] TRUSTED_INFORMATION_CLASS InformationClass,
+ [out, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO
*TrustedDomainInformation);
+
+ /* Function 40 */
+ NTSTATUS LsarSetTrustedDomainInfo(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_SID TrustedDomainSid,
+ [in] TRUSTED_INFORMATION_CLASS InformationClass,
+ [in, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO
TrustedDomainInformation);
+
+ /* Function 41 */
+ NTSTATUS LsarDeleteTrustedDomain(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_SID TrustedDomainSid);
+
+ /* Function 42 */
+ NTSTATUS LsarStorePrivateData(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_UNICODE_STRING KeyName,
+ [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedData);
+
+ /* Function 43 */
+ NTSTATUS LsarRetrievePrivateData(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_UNICODE_STRING KeyName,
+ [in, out] PLSAPR_CR_CIPHER_VALUE *EncryptedData);
+
+ /* Function 44 */
+ NTSTATUS LsarOpenPolicy2(
+ [in] handle_t hBinding,
+ [in, unique, string] LPWSTR SystemName,
+ [in] PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
+ [in] ACCESS_MASK DesiredAccess,
+ [out] LSAPR_HANDLE *PolicyHandle);
+
+ /* Function 45 */
+ NTSTATUS LsarGetUserName(
+ [in] handle_t hBinding,
+ [in, unique, string] LPWSTR SystemName,
+ [in, out] PRPC_UNICODE_STRING *UserName,
+ [in, out, unique] PRPC_UNICODE_STRING *DomainName);
+
+cpp_quote("#if _WIN32_WINNT >= 0x0500")
+
+ /* Function 46 */
+ NTSTATUS LsarQueryInformationPolicy2(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] POLICY_INFORMATION_CLASS InformationClass,
+ [out] unsigned long *PolicyInformation);
+ /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION
*PolicyInformation); */
+
+ /* Function 47 */
+ NTSTATUS LsarSetInformationPolicy2(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] POLICY_INFORMATION_CLASS InformationClass,
+ [in] unsigned long PolicyInformation);
+ /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION
PolicyInformation); */
+
+ /* Function 48 */
+ NTSTATUS LsarQueryTrustedDomainInfoByName(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_UNICODE_STRING TrustedDomainName,
+ [in] POLICY_INFORMATION_CLASS InformationClass,
+ [out] unsigned long *PolicyInformation);
+ /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION
*PolicyInformation); */
+
+ /* Function 49 */
+ NTSTATUS LsarSetTrustedDomainInfoByName(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_UNICODE_STRING TrustedDomainName,
+ [in] POLICY_INFORMATION_CLASS InformationClass,
+ [in] unsigned long PolicyInformation);
+ /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION
PolicyInformation); */
+
+ /* Function 50 */
+ NTSTATUS LsarEnumerateTrustedDomainsEx(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in, out] DWORD *EnumerationContext,
+ [out] PLSAPR_TRUSTED_ENUM_BUFFER_EX EnumerationBuffer,
+ [in] DWORD PreferedMaximumLength);
+
+ /* Function 51 */
+ NTSTATUS LsarCreateTrustedDomainEx(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
+ [in] PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthentificationInformation,
+ [in] ACCESS_MASK DesiredAccess,
+ [out] LSAPR_HANDLE *TrustedDomainHandle);
+
+ /* Function 52 */
+ NTSTATUS LsarSetPolicyReplicationHandle(
+ [in] handle_t hBinding,
+ [in, out] PLSAPR_HANDLE PolicyHandle);
+
+ /* Function 53 */
+ NTSTATUS LsarQueryDomainInformationPolicy(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] POLICY_INFORMATION_CLASS InformationClass,
+ [out] unsigned long *PolicyInformation);
+ /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION
*PolicyInformation); */
+
+ /* Function 54 */
+ NTSTATUS LsarSetDomainInformationPolicy(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] POLICY_INFORMATION_CLASS InformationClass,
+ [in] unsigned long PolicyInformation);
+ /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION
PolicyInformation); */
+
+ /* Function 55 */
+ NTSTATUS LsarOpenTrustedDomainByName(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PRPC_UNICODE_STRING TrustedDomainName,
+ [in] ACCESS_MASK DesiredAccess,
+ [out] LSAPR_HANDLE *TrustedDomainHandle);
+
+ /* Function 56 */
+ NTSTATUS LsarTestCall(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 57 */
+ NTSTATUS LsarLookupSids2(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
+ [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+ [in, out] PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
+ [in] LSAP_LOOKUP_LEVEL LookupLevel,
+ [in, out] DWORD *MappedCount,
+ [in] DWORD LookupOptions,
+ [in] DWORD ClientRevision);
+
+ /* Function 58 */
+ NTSTATUS LsarLookupNames2(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] DWORD Count,
+ [in, size_is(Count)] PRPC_UNICODE_STRING Names,
+ [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+ [in, out] PLSAPR_TRANSLATED_SID_EX TranslatedSids,
+ [in] LSAP_LOOKUP_LEVEL LookupLevel,
+ [in, out] DWORD *MappedCount,
+ [in] DWORD LookupOptions,
+ [in] DWORD ClientRevision);
+
+ /* Function 59 */
+ NTSTATUS LsarCreateTrustedDomainEx2(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
+ [in] PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL
AuthentificationInformation,
+ [in] ACCESS_MASK DesiredAccess,
+ [out] LSAPR_HANDLE *TrustedDomainHandle);
+
+cpp_quote("#if _WIN32_WINNT >= 0x0501")
+
+ /* Function 60 */
+ NTSTATUS CredrWrite(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 61 */
+ NTSTATUS CredrRead(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 62 */
+ NTSTATUS CredrEnumerate(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 63 */
+ NTSTATUS CredrWriteDomainCredentials(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 64 */
+ NTSTATUS CredrReadDomainCredentials(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 65 */
+ NTSTATUS CredrDelete(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 66 */
+ NTSTATUS CredrGetTargetInfo(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 67 */
+ NTSTATUS CredrProfileLoaded(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 68 */
+ NTSTATUS LsarLookupNames3(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] DWORD Count,
+ [in, size_is(Count)] PRPC_UNICODE_STRING Names,
+ [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+ [in, out] PLSAPR_TRANSLATED_SID_EX2 TranslatedSids,
+ [in] LSAP_LOOKUP_LEVEL LookupLevel,
+ [in, out] DWORD *MappedCount,
+ [in] DWORD LookupOptions,
+ [in] DWORD ClientRevision);
+
+ /* Function 69 */
+ NTSTATUS CredrGetSessionTypes(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 70 */
+ NTSTATUS LsarRegisterAuditEvent(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 71 */
+ NTSTATUS LsarGenAuditEvent(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 72 */
+ NTSTATUS LsarUnregisterAuditEvent(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 73 */
+ NTSTATUS LsarQueryForestTrustInformation(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PLSA_UNICODE_STRING TrustedDomainName,
+ [in] LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
+ [out] PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo);
+
+ /* Function 74 */
+ NTSTATUS LsarSetForestTrustInformation(
+ [in] handle_t hBinding,
+ [in] LSAPR_HANDLE PolicyHandle,
+ [in] PLSA_UNICODE_STRING TrustedDomainName,
+ [in] LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
+ [in] PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo,
+ [in] BOOL CheckOnly,
+ [out] PLSA_FOREST_TRUST_COLLISION_INFORMATION *CollisionInfo);
+
+ /* Function 75 */
+ NTSTATUS CredrRename(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 76 */
+ NTSTATUS LsarLookupSids3(
+ [in] handle_t hBinding,
+ [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
+ [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+ [in, out] PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
+ [in] LSAP_LOOKUP_LEVEL LookupLevel,
+ [in, out] DWORD *MappedCount,
+ [in] DWORD LookupOptions,
+ [in] DWORD ClientRevision);
+
+ /* Function 77 */
+ NTSTATUS LsarLookupNames4(
+ [in] handle_t hBinding,
+ [in] handle_t RpcHandle,
+ [in] DWORD Count,
+ [in, size_is(Count)] PRPC_UNICODE_STRING Names,
+ [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
+ [in, out] PLSAPR_TRANSLATED_SID_EX2 TranslatedSids,
+ [in] LSAP_LOOKUP_LEVEL LookupLevel,
+ [in, out] DWORD *MappedCount,
+ [in] DWORD LookupOptions,
+ [in] DWORD ClientRevision);
+
+ /* Function 78 */
+ NTSTATUS LsarOpenPolicySce(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 79 */
+ NTSTATUS LsarAdtRegisterSecurityEventSource(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 80 */
+ NTSTATUS LsarAdtUnregisterSecurityEventSource(
+ [in] handle_t hBinding); /* FIXME */
+
+ /* Function 81 */
+ NTSTATUS LsarAdtReportSecurityEvent(
+ [in] handle_t hBinding); /* FIXME */
+
+cpp_quote("#endif /* _WIN32_WINNT >= 0x0501 */")
+cpp_quote("#endif /* _WIN32_WINNT >= 0x0500 */")
+cpp_quote("#endif /* _WIN32_WINNT >= 0x0351 */")
+
}