[ros-diffs] [hpoussin] 35040: Add lots of missing functions to LSA RPC interface Fix existing ones to have same prototypes as MS Windows

hpoussin at svn.reactos.org hpoussin at svn.reactos.org
Sat Aug 2 17:46:00 CEST 2008


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.c?rev=35040&r1=35039&r2=35040&view=diff
==============================================================================
--- 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?rev=35040&r1=35039&r2=35040&view=diff
==============================================================================
--- 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.rbuild?rev=35040&r1=35039&r2=35040&view=diff
==============================================================================
--- 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.idl?rev=35040&r1=35039&r2=35040&view=diff
==============================================================================
--- 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 */")
+
 }



More information about the Ros-diffs mailing list