Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / reactos / dll / win32 / advapi32 / sec / lsa.c
diff --git a/reactos/dll/win32/advapi32/sec/lsa.c b/reactos/dll/win32/advapi32/sec/lsa.c
deleted file mode 100644 (file)
index f88cc66..0000000
+++ /dev/null
@@ -1,2256 +0,0 @@
-/*
- * COPYRIGHT:       See COPYING in the top level directory
- * PROJECT:         ReactOS system libraries
- * FILE:            dll/win32/advapi32/sec/lsa.c
- * PURPOSE:         Local security authority functions
- * PROGRAMMER:      Emanuele Aliberti
- * UPDATE HISTORY:
- *      19990322 EA created
- *      19990515 EA stubs
- *      20030202 KJK compressed stubs
- */
-
-#include <advapi32.h>
-
-#include <lsa_c.h>
-
-WINE_DEFAULT_DEBUG_CHANNEL(advapi);
-
-static
-BOOL
-LsapIsLocalComputer(PLSA_UNICODE_STRING ServerName)
-{
-    DWORD dwSize = MAX_COMPUTERNAME_LENGTH + 1;
-    BOOL Result;
-    LPWSTR buf;
-
-    if (ServerName == NULL || ServerName->Length == 0 || ServerName->Buffer == NULL)
-        return TRUE;
-
-    buf = HeapAlloc(GetProcessHeap(), 0, dwSize * sizeof(WCHAR));
-    Result = GetComputerNameW(buf, &dwSize);
-    if (Result && (ServerName->Buffer[0] == '\\') && (ServerName->Buffer[1] == '\\'))
-        ServerName += 2;
-    Result = Result && !lstrcmpW(ServerName->Buffer, buf);
-    HeapFree(GetProcessHeap(), 0, buf);
-
-    return Result;
-}
-
-
-handle_t
-__RPC_USER
-PLSAPR_SERVER_NAME_bind(PLSAPR_SERVER_NAME pszSystemName)
-{
-    handle_t hBinding = NULL;
-    LPWSTR pszStringBinding;
-    RPC_STATUS status;
-
-    TRACE("PLSAPR_SERVER_NAME_bind() called\n");
-
-    status = RpcStringBindingComposeW(NULL,
-                                      L"ncacn_np",
-                                      pszSystemName,
-                                      L"\\pipe\\lsarpc",
-                                      NULL,
-                                      &pszStringBinding);
-    if (status)
-    {
-        TRACE("RpcStringBindingCompose returned 0x%x\n", status);
-        return NULL;
-    }
-
-    /* Set the binding handle that will be used to bind to the server. */
-    status = RpcBindingFromStringBindingW(pszStringBinding,
-                                          &hBinding);
-    if (status)
-    {
-        TRACE("RpcBindingFromStringBinding returned 0x%x\n", status);
-    }
-
-    status = RpcStringFreeW(&pszStringBinding);
-    if (status)
-    {
-        TRACE("RpcStringFree returned 0x%x\n", status);
-    }
-
-    return hBinding;
-}
-
-
-void
-__RPC_USER
-PLSAPR_SERVER_NAME_unbind(PLSAPR_SERVER_NAME pszSystemName,
-                          handle_t hBinding)
-{
-    RPC_STATUS status;
-
-    TRACE("PLSAPR_SERVER_NAME_unbind() called\n");
-
-    status = RpcBindingFree(&hBinding);
-    if (status)
-    {
-        TRACE("RpcBindingFree returned 0x%x\n", status);
-    }
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaAddAccountRights(IN LSA_HANDLE PolicyHandle,
-                    IN PSID AccountSid,
-                    IN PLSA_UNICODE_STRING UserRights,
-                    IN ULONG CountOfRights)
-{
-    LSAPR_USER_RIGHT_SET UserRightSet;
-    NTSTATUS Status;
-
-    TRACE("LsaAddAccountRights(%p %p %p 0x%08x)\n",
-          PolicyHandle, AccountSid, UserRights, CountOfRights);
-
-    UserRightSet.Entries = CountOfRights;
-    UserRightSet.UserRights = (PRPC_UNICODE_STRING)UserRights;
-
-    RpcTryExcept
-    {
-        Status = LsarAddAccountRights((LSAPR_HANDLE)PolicyHandle,
-                                      (PRPC_SID)AccountSid,
-                                      &UserRightSet);
-
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaAddPrivilegesToAccount(IN LSA_HANDLE AccountHandle,
-                          IN PPRIVILEGE_SET PrivilegeSet)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaAddPrivilegesToAccount(%p %p)\n",
-          AccountHandle, PrivilegeSet);
-
-    RpcTryExcept
-    {
-        Status = LsarAddPrivilegesToAccount((LSAPR_HANDLE)AccountHandle,
-                                            (PLSAPR_PRIVILEGE_SET)PrivilegeSet);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaClearAuditLog(IN LSA_HANDLE PolicyHandle)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaClearAuditLog(%p)\n", PolicyHandle);
-
-    RpcTryExcept
-    {
-        Status = LsarClearAuditLog((LSAPR_HANDLE)PolicyHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaClose(IN LSA_HANDLE ObjectHandle)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaClose(%p) called\n", ObjectHandle);
-
-    RpcTryExcept
-    {
-        Status = LsarClose((PLSAPR_HANDLE)&ObjectHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaCreateAccount(IN LSA_HANDLE PolicyHandle,
-                 IN PSID AccountSid,
-                 IN ACCESS_MASK DesiredAccess,
-                 OUT PLSA_HANDLE AccountHandle)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaCreateAccount(%p %p 0x%08lx %p)\n",
-          PolicyHandle, AccountSid, DesiredAccess, AccountHandle);
-
-    RpcTryExcept
-    {
-        Status = LsarCreateAccount((LSAPR_HANDLE)PolicyHandle,
-                                   AccountSid,
-                                   DesiredAccess,
-                                   AccountHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaCreateSecret(IN LSA_HANDLE PolicyHandle,
-                IN PLSA_UNICODE_STRING SecretName,
-                IN ACCESS_MASK DesiredAccess,
-                OUT PLSA_HANDLE SecretHandle)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaCreateSecret(%p %p 0x%08lx %p)\n",
-          PolicyHandle, SecretName, DesiredAccess, SecretHandle);
-
-    RpcTryExcept
-    {
-        Status = LsarCreateSecret((LSAPR_HANDLE)PolicyHandle,
-                                  (PRPC_UNICODE_STRING)SecretName,
-                                  DesiredAccess,
-                                  SecretHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaCreateTrustedDomain(IN LSA_HANDLE PolicyHandle,
-                       IN PLSA_TRUST_INFORMATION TrustedDomainInformation,
-                       IN ACCESS_MASK DesiredAccess,
-                       OUT PLSA_HANDLE TrustedDomainHandle)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaCreateTrustedDomain(%p %p 0x%08lx %p)\n",
-          PolicyHandle, TrustedDomainInformation, DesiredAccess, TrustedDomainHandle);
-
-    RpcTryExcept
-    {
-        Status = LsarCreateTrustedDomain((LSAPR_HANDLE)PolicyHandle,
-                                         (PLSAPR_TRUST_INFORMATION)TrustedDomainInformation,
-                                         DesiredAccess,
-                                         (PLSAPR_HANDLE)TrustedDomainHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @unimplemented
- */
-NTSTATUS
-WINAPI
-LsaCreateTrustedDomainEx(IN LSA_HANDLE PolicyHandle,
-                         IN PTRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
-                         IN PTRUSTED_DOMAIN_AUTH_INFORMATION AuthenticationInformation,
-                         IN ACCESS_MASK DesiredAccess,
-                         OUT PLSA_HANDLE TrustedDomainHandle)
-{
-    PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL EncryptedAuthInfo = NULL;
-    NTSTATUS Status;
-
-    TRACE("LsaCreateTrustedDomainEx(%p %p %p 0x%08lx %p) stub\n",
-          PolicyHandle, TrustedDomainInformation, AuthenticationInformation,
-          DesiredAccess, TrustedDomainHandle);
-
-    RpcTryExcept
-    {
-        /* FIXME: Encrypt AuthenticationInformation */
-
-        Status = LsarCreateTrustedDomainEx2((LSAPR_HANDLE)PolicyHandle,
-                                            (PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX)TrustedDomainInformation,
-                                            EncryptedAuthInfo,
-                                            DesiredAccess,
-                                            (PLSAPR_HANDLE)TrustedDomainHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaDelete(IN LSA_HANDLE ObjectHandle)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaDelete(%p)\n", ObjectHandle);
-
-    RpcTryExcept
-    {
-        Status = LsarDelete((LSAPR_HANDLE)ObjectHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaDeleteTrustedDomain(IN LSA_HANDLE PolicyHandle,
-                       IN PSID TrustedDomainSid)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaDeleteTrustedDomain(%p %p)\n",
-          PolicyHandle, TrustedDomainSid);
-
-    RpcTryExcept
-    {
-        Status = LsarDeleteTrustedDomain((LSAPR_HANDLE)PolicyHandle,
-                                         TrustedDomainSid);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaEnumerateAccountRights(IN LSA_HANDLE PolicyHandle,
-                          IN PSID AccountSid,
-                          OUT PLSA_UNICODE_STRING *UserRights,
-                          OUT PULONG CountOfRights)
-{
-    LSAPR_USER_RIGHT_SET UserRightsSet;
-    NTSTATUS Status;
-
-    TRACE("LsaEnumerateAccountRights(%p %p %p %p)\n",
-          PolicyHandle, AccountSid, UserRights, CountOfRights);
-
-    UserRightsSet.Entries = 0;
-    UserRightsSet.UserRights = NULL;
-
-    RpcTryExcept
-    {
-        Status = LsarEnumerateAccountRights((LSAPR_HANDLE)PolicyHandle,
-                                            AccountSid,
-                                            &UserRightsSet);
-
-        *UserRights = (PUNICODE_STRING)UserRightsSet.UserRights;
-        *CountOfRights = UserRightsSet.Entries;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-
-        if (UserRightsSet.UserRights != NULL)
-            MIDL_user_free(UserRightsSet.UserRights);
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaEnumerateAccounts(IN LSA_HANDLE PolicyHandle,
-                     IN OUT PLSA_ENUMERATION_HANDLE EnumerationContext,
-                     OUT PVOID *Buffer,
-                     IN ULONG PreferedMaximumLength,
-                     OUT PULONG CountReturned)
-{
-    LSAPR_ACCOUNT_ENUM_BUFFER AccountEnumBuffer;
-    NTSTATUS Status;
-
-    TRACE("LsaEnumerateAccounts(%p %p %p %lu %p)\n",
-          PolicyHandle, EnumerationContext, Buffer,
-          PreferedMaximumLength, CountReturned);
-
-    AccountEnumBuffer.EntriesRead = 0;
-    AccountEnumBuffer.Information = NULL;
-
-    RpcTryExcept
-    {
-        Status = LsarEnumerateAccounts((LSAPR_HANDLE)PolicyHandle,
-                                       EnumerationContext,
-                                       &AccountEnumBuffer,
-                                       PreferedMaximumLength);
-
-        *Buffer = AccountEnumBuffer.Information;
-        *CountReturned = AccountEnumBuffer.EntriesRead;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (AccountEnumBuffer.Information != NULL)
-            MIDL_user_free(AccountEnumBuffer.Information);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaEnumerateAccountsWithUserRight(IN LSA_HANDLE PolicyHandle,
-                                  IN PLSA_UNICODE_STRING UserRight OPTIONAL,
-                                  OUT PVOID *Buffer,
-                                  OUT PULONG CountReturned)
-{
-    LSAPR_ACCOUNT_ENUM_BUFFER AccountEnumBuffer;
-    NTSTATUS Status;
-
-    TRACE("LsaEnumerateAccountsWithUserRight(%p %p %p %p) stub\n",
-          PolicyHandle, UserRight, Buffer, CountReturned);
-
-    AccountEnumBuffer.EntriesRead = 0;
-    AccountEnumBuffer.Information = NULL;
-
-    RpcTryExcept
-    {
-        Status = LsarEnumerateAccountsWithUserRight((LSAPR_HANDLE)PolicyHandle,
-                                                    (PRPC_UNICODE_STRING)UserRight,
-                                                    &AccountEnumBuffer);
-
-        *Buffer = AccountEnumBuffer.Information;
-        *CountReturned = AccountEnumBuffer.EntriesRead;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (AccountEnumBuffer.Information != NULL)
-            MIDL_user_free(AccountEnumBuffer.Information);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaEnumeratePrivileges(IN LSA_HANDLE PolicyHandle,
-                       IN OUT PLSA_ENUMERATION_HANDLE EnumerationContext,
-                       OUT PVOID *Buffer,
-                       IN ULONG PreferedMaximumLength,
-                       OUT PULONG CountReturned)
-{
-    LSAPR_PRIVILEGE_ENUM_BUFFER PrivilegeEnumBuffer;
-    NTSTATUS Status;
-
-    TRACE("LsaEnumeratePrivileges(%p %p %p %lu %p)\n",
-          PolicyHandle, EnumerationContext, Buffer,
-          PreferedMaximumLength, CountReturned);
-
-    PrivilegeEnumBuffer.Entries = 0;
-    PrivilegeEnumBuffer.Privileges = NULL;
-
-    RpcTryExcept
-    {
-        Status = LsarEnumeratePrivileges((LSAPR_HANDLE)PolicyHandle,
-                                         EnumerationContext,
-                                         &PrivilegeEnumBuffer,
-                                         PreferedMaximumLength);
-
-        *Buffer = PrivilegeEnumBuffer.Privileges;
-        *CountReturned = PrivilegeEnumBuffer.Entries;
-
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (PrivilegeEnumBuffer.Privileges != NULL)
-            MIDL_user_free(PrivilegeEnumBuffer.Privileges);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaEnumeratePrivilegesOfAccount(IN LSA_HANDLE AccountHandle,
-                                OUT PPRIVILEGE_SET *Privileges)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaEnumeratePrivilegesOfAccount(%p %p)\n",
-          AccountHandle, Privileges);
-
-    RpcTryExcept
-    {
-        Status = LsarEnumeratePrivilegesAccount((LSAPR_HANDLE)AccountHandle,
-                                                (LSAPR_PRIVILEGE_SET **)Privileges);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaEnumerateTrustedDomains(IN LSA_HANDLE PolicyHandle,
-                           IN OUT PLSA_ENUMERATION_HANDLE EnumerationContext,
-                           OUT PVOID *Buffer,
-                           IN ULONG PreferedMaximumLength,
-                           OUT PULONG CountReturned)
-{
-    LSAPR_TRUSTED_ENUM_BUFFER TrustedEnumBuffer;
-    NTSTATUS Status;
-
-    TRACE("LsaEnumerateTrustedDomains(%p %p %p %lu %p)\n",
-          PolicyHandle, EnumerationContext, Buffer,
-          PreferedMaximumLength, CountReturned);
-
-    if (Buffer == NULL)
-        return STATUS_INVALID_PARAMETER;
-
-    TrustedEnumBuffer.EntriesRead = 0;
-    TrustedEnumBuffer.Information = NULL;
-
-    RpcTryExcept
-    {
-        Status = LsarEnumerateTrustedDomains((LSAPR_HANDLE)PolicyHandle,
-                                             EnumerationContext,
-                                             &TrustedEnumBuffer,
-                                             PreferedMaximumLength);
-
-        *Buffer = TrustedEnumBuffer.Information;
-        *CountReturned = TrustedEnumBuffer.EntriesRead;
-
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (TrustedEnumBuffer.Information != NULL)
-            MIDL_user_free(TrustedEnumBuffer.Information);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaEnumerateTrustedDomainsEx(IN LSA_HANDLE PolicyHandle,
-                             IN OUT PLSA_ENUMERATION_HANDLE EnumerationContext,
-                             OUT PVOID *Buffer,
-                             IN ULONG PreferedMaximumLength,
-                             OUT PULONG CountReturned)
-{
-    LSAPR_TRUSTED_ENUM_BUFFER_EX TrustedEnumBuffer;
-    NTSTATUS Status;
-
-    TRACE("LsaEnumerateTrustedDomainsEx(%p %p %p %lu %p)\n",
-          PolicyHandle, EnumerationContext, Buffer,
-          PreferedMaximumLength, CountReturned);
-
-    if (Buffer == NULL)
-        return STATUS_INVALID_PARAMETER;
-
-    TrustedEnumBuffer.EntriesRead = 0;
-    TrustedEnumBuffer.EnumerationBuffer = NULL;
-
-    RpcTryExcept
-    {
-        Status = LsarEnumerateTrustedDomainsEx((LSAPR_HANDLE)PolicyHandle,
-                                               EnumerationContext,
-                                               &TrustedEnumBuffer,
-                                               PreferedMaximumLength);
-
-        *Buffer = TrustedEnumBuffer.EnumerationBuffer;
-        *CountReturned = TrustedEnumBuffer.EntriesRead;
-
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (TrustedEnumBuffer.EnumerationBuffer != NULL)
-            MIDL_user_free(TrustedEnumBuffer.EnumerationBuffer);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaFreeMemory(IN PVOID Buffer)
-{
-    TRACE("LsaFreeMemory(%p)\n", Buffer);
-    return RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer);
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaGetQuotasForAccount(IN LSA_HANDLE AccountHandle,
-                       OUT PQUOTA_LIMITS QuotaLimits)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaGetQuotasForAccount(%p %p)\n",
-          AccountHandle, QuotaLimits);
-
-    RpcTryExcept
-    {
-        Status = LsarGetQuotasForAccount((LSAPR_HANDLE)AccountHandle,
-                                         QuotaLimits);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaGetRemoteUserName(IN PLSA_UNICODE_STRING SystemName OPTIONAL,
-                     OUT PLSA_UNICODE_STRING *UserName,
-                     OUT PLSA_UNICODE_STRING *DomainName OPTIONAL)
-{
-    PRPC_UNICODE_STRING UserNameString = NULL;
-    PRPC_UNICODE_STRING DomainNameString = NULL;
-    NTSTATUS Status;
-
-    TRACE("LsaGetRemoteUserName(%s %p %p)\n",
-          SystemName ? debugstr_w(SystemName->Buffer) : "(null)",
-          UserName, DomainName);
-
-    RpcTryExcept
-    {
-        Status = LsarGetUserName((PLSAPR_SERVER_NAME)SystemName,
-                                 &UserNameString,
-                                 (DomainName != NULL) ? &DomainNameString : NULL);
-
-        *UserName = (PLSA_UNICODE_STRING)UserNameString;
-
-        if (DomainName != NULL)
-            *DomainName = (PLSA_UNICODE_STRING)DomainNameString;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (UserNameString != NULL)
-            MIDL_user_free(UserNameString);
-
-        if (DomainNameString != NULL)
-            MIDL_user_free(DomainNameString);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaGetSystemAccessAccount(IN LSA_HANDLE AccountHandle,
-                          OUT PULONG SystemAccess)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaGetSystemAccessAccount(%p %p)\n",
-          AccountHandle, SystemAccess);
-
-    RpcTryExcept
-    {
-        Status = LsarGetSystemAccessAccount((LSAPR_HANDLE)AccountHandle,
-                                            (ACCESS_MASK *)SystemAccess);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaGetUserName(OUT PUNICODE_STRING *UserName,
-               OUT PUNICODE_STRING *DomainName OPTIONAL)
-{
-    PRPC_UNICODE_STRING UserNameString = NULL;
-    PRPC_UNICODE_STRING DomainNameString = NULL;
-    NTSTATUS Status;
-
-    TRACE("LsaGetUserName(%p %p)\n",
-          UserName, DomainName);
-
-    RpcTryExcept
-    {
-        Status = LsarGetUserName(NULL,
-                                 &UserNameString,
-                                 (DomainName != NULL) ? &DomainNameString : NULL);
-
-        *UserName = (PUNICODE_STRING)UserNameString;
-
-        if (DomainName != NULL)
-            *DomainName = (PUNICODE_STRING)DomainNameString;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (UserNameString != NULL)
-            MIDL_user_free(UserNameString);
-
-        if (DomainNameString != NULL)
-            MIDL_user_free(DomainNameString);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaLookupNames(IN LSA_HANDLE PolicyHandle,
-               IN ULONG Count,
-               IN PLSA_UNICODE_STRING Names,
-               OUT PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
-               OUT PLSA_TRANSLATED_SID *Sids)
-{
-    LSAPR_TRANSLATED_SIDS TranslatedSids = {0, NULL};
-    ULONG MappedCount = 0;
-    NTSTATUS Status;
-
-    TRACE("LsaLookupNames(%p %lu %p %p %p)\n",
-          PolicyHandle, Count, Names, ReferencedDomains, Sids);
-
-    if (ReferencedDomains == NULL || Sids == NULL)
-        return STATUS_INVALID_PARAMETER;
-
-    RpcTryExcept
-    {
-        *ReferencedDomains = NULL;
-        *Sids = NULL;
-
-        TranslatedSids.Entries = Count;
-
-        Status = LsarLookupNames((LSAPR_HANDLE)PolicyHandle,
-                                 Count,
-                                 (PRPC_UNICODE_STRING)Names,
-                                 (PLSAPR_REFERENCED_DOMAIN_LIST *)ReferencedDomains,
-                                 &TranslatedSids,
-                                 LsapLookupWksta,
-                                 &MappedCount);
-
-        *Sids = (PLSA_TRANSLATED_SID)TranslatedSids.Sids;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (TranslatedSids.Sids != NULL)
-            MIDL_user_free(TranslatedSids.Sids);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaLookupNames2(IN LSA_HANDLE PolicyHandle,
-                IN ULONG Flags,
-                IN ULONG Count,
-                IN PLSA_UNICODE_STRING Names,
-                OUT PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
-                OUT PLSA_TRANSLATED_SID2 *Sids)
-{
-    LSAPR_TRANSLATED_SIDS_EX2 TranslatedSids = {0, NULL};
-    ULONG MappedCount = 0;
-    NTSTATUS Status;
-
-    TRACE("LsaLookupNames2(%p 0x%08x %lu %p %p %p)\n",
-          PolicyHandle, Flags, Count, Names, ReferencedDomains, Sids);
-
-    if (ReferencedDomains == NULL || Sids == NULL)
-        return STATUS_INVALID_PARAMETER;
-
-    RpcTryExcept
-    {
-        *ReferencedDomains = NULL;
-        *Sids = NULL;
-
-        TranslatedSids.Entries = Count;
-
-        Status = LsarLookupNames3((LSAPR_HANDLE)PolicyHandle,
-                                  Count,
-                                  (PRPC_UNICODE_STRING)Names,
-                                  (PLSAPR_REFERENCED_DOMAIN_LIST *)ReferencedDomains,
-                                  &TranslatedSids,
-                                  LsapLookupWksta,
-                                  &MappedCount,
-                                  Flags,
-                                  2);
-
-        *Sids = (PLSA_TRANSLATED_SID2)TranslatedSids.Sids;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (TranslatedSids.Sids != NULL)
-            MIDL_user_free(TranslatedSids.Sids);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaLookupPrivilegeDisplayName(IN LSA_HANDLE PolicyHandle,
-                              IN PLSA_UNICODE_STRING Name,
-                              OUT PLSA_UNICODE_STRING *DisplayName,
-                              OUT PUSHORT LanguageReturned)
-{
-    PRPC_UNICODE_STRING DisplayNameBuffer = NULL;
-    NTSTATUS Status;
-
-    TRACE("LsaLookupPrivilegeDisplayName(%p %p %p %p)\n",
-          PolicyHandle, Name, DisplayName, LanguageReturned);
-
-    RpcTryExcept
-    {
-        Status = LsarLookupPrivilegeDisplayName(PolicyHandle,
-                                                (PRPC_UNICODE_STRING)Name,
-                                                GetUserDefaultUILanguage(),
-                                                GetSystemDefaultUILanguage(),
-                                                &DisplayNameBuffer,
-                                                LanguageReturned);
-
-        *DisplayName = (PUNICODE_STRING)DisplayNameBuffer;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (DisplayNameBuffer != NULL)
-            MIDL_user_free(DisplayNameBuffer);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaLookupPrivilegeName(IN LSA_HANDLE PolicyHandle,
-                       IN PLUID Value,
-                       OUT PUNICODE_STRING *Name)
-{
-    PRPC_UNICODE_STRING NameBuffer = NULL;
-    NTSTATUS Status;
-
-    TRACE("LsaLookupPrivilegeName(%p %p %p)\n",
-          PolicyHandle, Value, Name);
-
-    RpcTryExcept
-    {
-        Status = LsarLookupPrivilegeName(PolicyHandle,
-                                         Value,
-                                         &NameBuffer);
-
-        *Name = (PUNICODE_STRING)NameBuffer;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (NameBuffer != NULL)
-            MIDL_user_free(NameBuffer);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaLookupPrivilegeValue(IN LSA_HANDLE PolicyHandle,
-                        IN PLSA_UNICODE_STRING Name,
-                        OUT PLUID Value)
-{
-    LUID Luid;
-    NTSTATUS Status;
-
-    TRACE("LsaLookupPrivilegeValue(%p %p %p)\n",
-          PolicyHandle, Name, Value);
-
-    RpcTryExcept
-    {
-        Status = LsarLookupPrivilegeValue(PolicyHandle,
-                                          (PRPC_UNICODE_STRING)Name,
-                                          &Luid);
-        if (Status == STATUS_SUCCESS)
-            *Value = Luid;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaLookupSids(IN LSA_HANDLE PolicyHandle,
-              IN ULONG Count,
-              IN PSID *Sids,
-              OUT PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
-              OUT PLSA_TRANSLATED_NAME *Names)
-{
-    LSAPR_SID_ENUM_BUFFER SidEnumBuffer;
-    LSAPR_TRANSLATED_NAMES TranslatedNames;
-    ULONG MappedCount = 0;
-    NTSTATUS  Status;
-
-    TRACE("LsaLookupSids(%p %lu %p %p %p)\n",
-          PolicyHandle, Count, Sids, ReferencedDomains, Names);
-
-    if (Count == 0)
-        return STATUS_INVALID_PARAMETER;
-
-    SidEnumBuffer.Entries = Count;
-    SidEnumBuffer.SidInfo = (PLSAPR_SID_INFORMATION)Sids;
-
-    RpcTryExcept
-    {
-        *ReferencedDomains = NULL;
-        *Names = NULL;
-
-        TranslatedNames.Entries = 0;
-        TranslatedNames.Names = NULL;
-
-        Status = LsarLookupSids((LSAPR_HANDLE)PolicyHandle,
-                                &SidEnumBuffer,
-                                (PLSAPR_REFERENCED_DOMAIN_LIST *)ReferencedDomains,
-                                &TranslatedNames,
-                                LsapLookupWksta,
-                                &MappedCount);
-
-        *Names = (PLSA_TRANSLATED_NAME)TranslatedNames.Names;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (TranslatedNames.Names != NULL)
-        {
-            MIDL_user_free(TranslatedNames.Names);
-        }
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/******************************************************************************
- * LsaNtStatusToWinError
- *
- * PARAMS
- *   Status [I]
- *
- * @implemented
- */
-ULONG
-WINAPI
-LsaNtStatusToWinError(IN NTSTATUS Status)
-{
-    TRACE("LsaNtStatusToWinError(0x%lx)\n", Status);
-    return RtlNtStatusToDosError(Status);
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaOpenAccount(IN LSA_HANDLE PolicyHandle,
-               IN PSID AccountSid,
-               IN ACCESS_MASK DesiredAccess,
-               OUT PLSA_HANDLE AccountHandle)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaOpenAccount(%p %p 0x%08lx %p)\n",
-          PolicyHandle, AccountSid, DesiredAccess, AccountHandle);
-
-    RpcTryExcept
-    {
-        Status = LsarOpenAccount((LSAPR_HANDLE)PolicyHandle,
-                                 AccountSid,
-                                 DesiredAccess,
-                                 AccountHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/******************************************************************************
- * LsaOpenPolicy
- *
- * PARAMS
- *   x1 []
- *   x2 []
- *   x3 []
- *   x4 []
- *
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaOpenPolicy(IN PLSA_UNICODE_STRING SystemName OPTIONAL,
-              IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes,
-              IN ACCESS_MASK DesiredAccess,
-              OUT PLSA_HANDLE PolicyHandle)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaOpenPolicy(%s %p 0x%08lx %p)\n",
-          SystemName ? debugstr_w(SystemName->Buffer) : "(null)",
-          ObjectAttributes, DesiredAccess, PolicyHandle);
-
-    /* FIXME: RPC should take care of this */
-    if (!LsapIsLocalComputer(SystemName))
-        return RPC_NT_SERVER_UNAVAILABLE;
-
-    RpcTryExcept
-    {
-        *PolicyHandle = NULL;
-
-        Status = LsarOpenPolicy(SystemName ? SystemName->Buffer : NULL,
-                                (PLSAPR_OBJECT_ATTRIBUTES)ObjectAttributes,
-                                DesiredAccess,
-                                PolicyHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    TRACE("LsaOpenPolicy() done (Status: 0x%08lx)\n", Status);
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaOpenPolicySce(IN PLSA_UNICODE_STRING SystemName OPTIONAL,
-                 IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes,
-                 IN ACCESS_MASK DesiredAccess,
-                 OUT PLSA_HANDLE PolicyHandle)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaOpenPolicySce(%s %p 0x%08lx %p)\n",
-          SystemName ? debugstr_w(SystemName->Buffer) : "(null)",
-          ObjectAttributes, DesiredAccess, PolicyHandle);
-
-    /* FIXME: RPC should take care of this */
-    if (!LsapIsLocalComputer(SystemName))
-        return RPC_NT_SERVER_UNAVAILABLE;
-
-    RpcTryExcept
-    {
-        *PolicyHandle = NULL;
-
-        Status = LsarOpenPolicySce(SystemName ? SystemName->Buffer : NULL,
-                                   (PLSAPR_OBJECT_ATTRIBUTES)ObjectAttributes,
-                                   DesiredAccess,
-                                   PolicyHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    TRACE("LsaOpenPolicySce() done (Status: 0x%08lx)\n", Status);
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaOpenSecret(IN LSA_HANDLE PolicyHandle,
-              IN PLSA_UNICODE_STRING SecretName,
-              IN ACCESS_MASK DesiredAccess,
-              OUT PLSA_HANDLE SecretHandle)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaOpenSecret(%p %p 0x%08lx %p)\n",
-          PolicyHandle, SecretName, DesiredAccess, SecretHandle);
-
-    RpcTryExcept
-    {
-        *SecretHandle = NULL;
-
-        Status = LsarOpenSecret((LSAPR_HANDLE)PolicyHandle,
-                                (PRPC_UNICODE_STRING)SecretName,
-                                DesiredAccess,
-                                SecretHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    TRACE("LsaOpenSecret() done (Status: 0x%08lx)\n", Status);
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaOpenTrustedDomain(IN LSA_HANDLE PolicyHandle,
-                     IN PSID TrustedDomainSid,
-                     IN ACCESS_MASK DesiredAccess,
-                     OUT PLSA_HANDLE TrustedDomainHandle)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaOpenTrustedDomain(%p %p 0x%08lx %p)\n",
-          PolicyHandle, TrustedDomainSid, DesiredAccess, TrustedDomainHandle);
-
-    RpcTryExcept
-    {
-        Status = LsarOpenTrustedDomain((LSAPR_HANDLE)PolicyHandle,
-                                       (PRPC_SID)TrustedDomainSid,
-                                       DesiredAccess,
-                                       (PLSAPR_HANDLE)TrustedDomainHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaOpenTrustedDomainByName(IN LSA_HANDLE PolicyHandle,
-                           IN PLSA_UNICODE_STRING TrustedDomainName,
-                           IN ACCESS_MASK DesiredAccess,
-                           OUT PLSA_HANDLE TrustedDomainHandle)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaOpenTrustedDomainByName(%p %p 0x%08lx %p)\n",
-          PolicyHandle, TrustedDomainName, DesiredAccess, TrustedDomainHandle);
-
-    RpcTryExcept
-    {
-        Status = LsarOpenTrustedDomainByName((LSAPR_HANDLE)PolicyHandle,
-                                             (PRPC_UNICODE_STRING)TrustedDomainName,
-                                             DesiredAccess,
-                                             TrustedDomainHandle);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaQueryDomainInformationPolicy(IN LSA_HANDLE PolicyHandle,
-                                IN POLICY_DOMAIN_INFORMATION_CLASS InformationClass,
-                                OUT PVOID *Buffer)
-{
-    PLSAPR_POLICY_DOMAIN_INFORMATION PolicyInformation = NULL;
-    NTSTATUS Status;
-
-    TRACE("LsaQueryDomainInformationPolicy(%p %lu %p)\n",
-          PolicyHandle, InformationClass, Buffer);
-
-    RpcTryExcept
-    {
-        Status = LsarQueryDomainInformationPolicy((LSAPR_HANDLE)PolicyHandle,
-                                                  InformationClass,
-                                                  &PolicyInformation);
-
-        *Buffer = PolicyInformation;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (PolicyInformation != NULL)
-            MIDL_user_free(PolicyInformation);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaQueryForestTrustInformation(IN LSA_HANDLE PolicyHandle,
-                               IN PLSA_UNICODE_STRING TrustedDomainName,
-                               OUT PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaQueryForestTrustInformation(%p %p %p)\n",
-          PolicyHandle, TrustedDomainName, ForestTrustInfo);
-
-    RpcTryExcept
-    {
-        Status = LsarQueryForestTrustInformation((LSAPR_HANDLE)PolicyHandle,
-                                                 TrustedDomainName,
-                                                 ForestTrustDomainInfo,
-                                                 ForestTrustInfo);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaQueryInfoTrustedDomain(IN LSA_HANDLE TrustedDomainHandle,
-                          IN TRUSTED_INFORMATION_CLASS InformationClass,
-                          OUT PVOID *Buffer)
-{
-    PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation = NULL;
-    NTSTATUS Status;
-
-    TRACE("LsaQueryInfoTrustedDomain(%p %d %p) stub\n",
-          TrustedDomainHandle, InformationClass, Buffer);
-
-    if (InformationClass == TrustedDomainAuthInformationInternal ||
-        InformationClass == TrustedDomainFullInformationInternal)
-        return STATUS_INVALID_INFO_CLASS;
-
-    RpcTryExcept
-    {
-        Status = LsarQueryInfoTrustedDomain((LSAPR_HANDLE)TrustedDomainHandle,
-                                            InformationClass,
-                                            &TrustedDomainInformation);
-        *Buffer = TrustedDomainInformation;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (TrustedDomainInformation != NULL)
-            MIDL_user_free(TrustedDomainInformation);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    TRACE("Done (Status: 0x%08x)\n", Status);
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaQueryInformationPolicy(IN LSA_HANDLE PolicyHandle,
-                          IN POLICY_INFORMATION_CLASS InformationClass,
-                          OUT PVOID *Buffer)
-{
-    PLSAPR_POLICY_INFORMATION PolicyInformation = NULL;
-    NTSTATUS Status;
-
-    TRACE("LsaQueryInformationPolicy(%p %d %p)\n",
-          PolicyHandle, InformationClass, Buffer);
-
-    RpcTryExcept
-    {
-        Status = LsarQueryInformationPolicy((LSAPR_HANDLE)PolicyHandle,
-                                            InformationClass,
-                                            &PolicyInformation);
-        *Buffer = PolicyInformation;
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        if (PolicyInformation != NULL)
-            MIDL_user_free(PolicyInformation);
-
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    TRACE("Done (Status: 0x%08x)\n", Status);
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaQuerySecret(IN LSA_HANDLE SecretHandle,
-               OUT PLSA_UNICODE_STRING *CurrentValue OPTIONAL,
-               OUT PLARGE_INTEGER CurrentValueSetTime OPTIONAL,
-               OUT PLSA_UNICODE_STRING *OldValue OPTIONAL,
-               OUT PLARGE_INTEGER OldValueSetTime OPTIONAL)
-{
-    PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue = NULL;
-    PLSAPR_CR_CIPHER_VALUE EncryptedOldValue = NULL;
-    PLSA_UNICODE_STRING DecryptedCurrentValue = NULL;
-    PLSA_UNICODE_STRING DecryptedOldValue = NULL;
-    SIZE_T BufferSize;
-    NTSTATUS Status;
-
-    TRACE("LsaQuerySecret(%p %p %p %p %p)\n",
-          SecretHandle, CurrentValue, CurrentValueSetTime,
-          OldValue, OldValueSetTime);
-
-    RpcTryExcept
-    {
-        Status = LsarQuerySecret((PLSAPR_HANDLE)SecretHandle,
-                                 &EncryptedCurrentValue,
-                                 CurrentValueSetTime,
-                                 &EncryptedOldValue,
-                                 OldValueSetTime);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    if (!NT_SUCCESS(Status))
-        goto done;
-
-    /* Decrypt the current value */
-    if (CurrentValue != NULL)
-    {
-         if (EncryptedCurrentValue == NULL)
-         {
-             *CurrentValue = NULL;
-         }
-         else
-         {
-             /* FIXME: Decrypt the current value */
-             BufferSize = sizeof(LSA_UNICODE_STRING) + EncryptedCurrentValue->MaximumLength;
-             DecryptedCurrentValue = midl_user_allocate(BufferSize);
-             if (DecryptedCurrentValue == NULL)
-             {
-                 Status = STATUS_INSUFFICIENT_RESOURCES;
-                 goto done;
-             }
-
-             DecryptedCurrentValue->Length = (USHORT)EncryptedCurrentValue->Length;
-             DecryptedCurrentValue->MaximumLength = (USHORT)EncryptedCurrentValue->MaximumLength;
-             DecryptedCurrentValue->Buffer = (PWSTR)(DecryptedCurrentValue + 1);
-             RtlCopyMemory(DecryptedCurrentValue->Buffer,
-                           EncryptedCurrentValue->Buffer,
-                           EncryptedCurrentValue->Length);
-
-             *CurrentValue = DecryptedCurrentValue;
-         }
-    }
-
-    /* Decrypt the old value */
-    if (OldValue != NULL)
-    {
-         if (EncryptedOldValue == NULL)
-         {
-             *OldValue = NULL;
-         }
-         else
-         {
-             /* FIXME: Decrypt the old value */
-             BufferSize = sizeof(LSA_UNICODE_STRING) + EncryptedOldValue->MaximumLength;
-             DecryptedOldValue = midl_user_allocate(BufferSize);
-             if (DecryptedOldValue == NULL)
-             {
-                 Status = STATUS_INSUFFICIENT_RESOURCES;
-                 goto done;
-             }
-
-             DecryptedOldValue->Length = (USHORT)EncryptedOldValue->Length;
-             DecryptedOldValue->MaximumLength = (USHORT)EncryptedOldValue->MaximumLength;
-             DecryptedOldValue->Buffer = (PWSTR)(DecryptedOldValue + 1);
-             RtlCopyMemory(DecryptedOldValue->Buffer,
-                           EncryptedOldValue->Buffer,
-                           EncryptedOldValue->Length);
-
-             *OldValue = DecryptedOldValue;
-         }
-    }
-
-done:
-    if (!NT_SUCCESS(Status))
-    {
-        if (DecryptedCurrentValue != NULL)
-            midl_user_free(DecryptedCurrentValue);
-
-        if (DecryptedOldValue != NULL)
-            midl_user_free(DecryptedOldValue);
-
-        if (CurrentValue != NULL)
-            *CurrentValue = NULL;
-
-        if (OldValue != NULL)
-            *OldValue = NULL;
-    }
-
-    if (EncryptedCurrentValue != NULL)
-        midl_user_free(EncryptedCurrentValue);
-
-    if (EncryptedOldValue != NULL)
-        midl_user_free(EncryptedOldValue);
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaQuerySecurityObject(IN LSA_HANDLE ObjectHandle,
-                       IN SECURITY_INFORMATION SecurityInformation,
-                       OUT PSECURITY_DESCRIPTOR *SecurityDescriptor)
-{
-    LSAPR_SR_SECURITY_DESCRIPTOR SdBuffer;
-    PLSAPR_SR_SECURITY_DESCRIPTOR SdPointer;
-    NTSTATUS Status;
-
-    TRACE("LsaQuerySecurityObject(%p %lx %p)\n",
-          ObjectHandle, SecurityInformation, SecurityDescriptor);
-
-    SdBuffer.Length = 0;
-    SdBuffer.SecurityDescriptor = NULL;
-
-    SdPointer = &SdBuffer;
-
-    RpcTryExcept
-    {
-        Status = LsarQuerySecurityObject((LSAPR_HANDLE)ObjectHandle,
-                                         SecurityInformation,
-                                         &SdPointer);
-        if (NT_SUCCESS(Status))
-        {
-            *SecurityDescriptor = SdBuffer.SecurityDescriptor;
-        }
-        else
-        {
-            *SecurityDescriptor = NULL;
-        }
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaQueryTrustedDomainInfo(IN LSA_HANDLE PolicyHandle,
-                          IN PSID TrustedDomainSid,
-                          IN TRUSTED_INFORMATION_CLASS InformationClass,
-                          OUT PVOID *Buffer)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaQueryTrustedDomainInfo(%p %p %d %p) stub\n",
-          PolicyHandle, TrustedDomainSid, InformationClass, Buffer);
-
-    if (InformationClass == TrustedDomainAuthInformationInternal ||
-        InformationClass == TrustedDomainFullInformationInternal)
-        return STATUS_INVALID_INFO_CLASS;
-
-    RpcTryExcept
-    {
-        Status = LsarQueryTrustedDomainInfo((LSAPR_HANDLE)PolicyHandle,
-                                            (PRPC_SID)TrustedDomainSid,
-                                            InformationClass,
-                                            (PLSAPR_TRUSTED_DOMAIN_INFO *)Buffer);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaQueryTrustedDomainInfoByName(IN LSA_HANDLE PolicyHandle,
-                                IN PLSA_UNICODE_STRING TrustedDomainName,
-                                IN TRUSTED_INFORMATION_CLASS InformationClass,
-                                OUT PVOID *Buffer)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaQueryTrustedDomainInfoByName(%p %p %d %p)\n",
-          PolicyHandle, TrustedDomainName, InformationClass, Buffer);
-
-    if (InformationClass == TrustedDomainAuthInformationInternal ||
-        InformationClass == TrustedDomainFullInformationInternal)
-        return STATUS_INVALID_INFO_CLASS;
-
-    RpcTryExcept
-    {
-        Status = LsarQueryTrustedDomainInfoByName((LSAPR_HANDLE)PolicyHandle,
-                                                  (PRPC_UNICODE_STRING)TrustedDomainName,
-                                                  InformationClass,
-                                                  (PLSAPR_TRUSTED_DOMAIN_INFO *)Buffer);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaRemoveAccountRights(IN LSA_HANDLE PolicyHandle,
-                       IN PSID AccountSid,
-                       IN BOOLEAN AllRights,
-                       IN PLSA_UNICODE_STRING UserRights,
-                       IN ULONG CountOfRights)
-{
-    NTSTATUS Status;
-    LSAPR_USER_RIGHT_SET UserRightSet;
-
-    TRACE("LsaRemoveAccountRights(%p %p %d %p %lu)\n",
-          PolicyHandle, AccountSid, AllRights, UserRights, CountOfRights);
-
-    UserRightSet.Entries = CountOfRights;
-    UserRightSet.UserRights = (PRPC_UNICODE_STRING)UserRights;
-
-    RpcTryExcept
-    {
-        Status = LsarRemoveAccountRights((LSAPR_HANDLE)PolicyHandle,
-                                         (PRPC_SID)AccountSid,
-                                         AllRights,
-                                         &UserRightSet);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaRemovePrivilegesFromAccount(IN LSA_HANDLE AccountHandle,
-                               IN BOOLEAN AllPrivileges,
-                               IN PPRIVILEGE_SET Privileges OPTIONAL)
-{
-    NTSTATUS Status;
-
-    RpcTryExcept
-    {
-        Status = LsarRemovePrivilegesFromAccount((LSAPR_HANDLE)AccountHandle,
-                                                 AllPrivileges,
-                                                 (PLSAPR_PRIVILEGE_SET)Privileges);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaRetrievePrivateData(IN LSA_HANDLE PolicyHandle,
-                       IN PLSA_UNICODE_STRING KeyName,
-                       OUT PLSA_UNICODE_STRING *PrivateData)
-{
-    PLSAPR_CR_CIPHER_VALUE EncryptedData = NULL;
-    PLSA_UNICODE_STRING DecryptedData = NULL;
-    SIZE_T BufferSize;
-    NTSTATUS Status;
-
-    TRACE("LsaRetrievePrivateData(%p %p %p)\n",
-          PolicyHandle, KeyName, PrivateData);
-
-    RpcTryExcept
-    {
-        Status = LsarRetrievePrivateData((LSAPR_HANDLE)PolicyHandle,
-                                         (PRPC_UNICODE_STRING)KeyName,
-                                         &EncryptedData);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    if (EncryptedData == NULL)
-    {
-        *PrivateData = NULL;
-    }
-    else
-    {
-        BufferSize = sizeof(LSA_UNICODE_STRING) + EncryptedData->MaximumLength;
-        DecryptedData = midl_user_allocate(BufferSize);
-        if (DecryptedData == NULL)
-        {
-            Status = STATUS_INSUFFICIENT_RESOURCES;
-            goto done;
-        }
-
-        DecryptedData->Length = (USHORT)EncryptedData->Length;
-        DecryptedData->MaximumLength = (USHORT)EncryptedData->MaximumLength;
-        DecryptedData->Buffer = (PWSTR)(DecryptedData + 1);
-        RtlCopyMemory(DecryptedData->Buffer,
-                      EncryptedData->Buffer,
-                      EncryptedData->Length);
-
-        *PrivateData = DecryptedData;
-    }
-
-done:
-    if (!NT_SUCCESS(Status))
-    {
-        if (DecryptedData != NULL)
-            midl_user_free(DecryptedData);
-
-        *PrivateData = NULL;
-    }
-
-    if (EncryptedData != NULL)
-        midl_user_free(EncryptedData);
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaSetDomainInformationPolicy(IN LSA_HANDLE PolicyHandle,
-                              IN POLICY_DOMAIN_INFORMATION_CLASS InformationClass,
-                              IN PVOID Buffer OPTIONAL)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaSetDomainInformationPolicy(%p %d %p)\n",
-          PolicyHandle, InformationClass, Buffer);
-
-    RpcTryExcept
-    {
-        Status = LsarSetDomainInformationPolicy((LSAPR_HANDLE)PolicyHandle,
-                                                InformationClass,
-                                                (PLSAPR_POLICY_DOMAIN_INFORMATION)Buffer);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaSetForestTrustInformation(IN LSA_HANDLE PolicyHandle,
-                             IN PLSA_UNICODE_STRING TrustedDomainName,
-                             IN PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo,
-                             IN BOOLEAN CheckOnly,
-                             OUT PLSA_FOREST_TRUST_COLLISION_INFORMATION *CollisionInfo)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaSetForestTrustInformation(%p %p %p %d %p)\n",
-          PolicyHandle, TrustedDomainName, ForestTrustInfo, CheckOnly, CollisionInfo);
-
-    RpcTryExcept
-    {
-        Status = LsarSetForestTrustInformation((LSAPR_HANDLE)PolicyHandle,
-                                               TrustedDomainName,
-                                               ForestTrustDomainInfo,
-                                               ForestTrustInfo,
-                                               CheckOnly,
-                                               CollisionInfo);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaSetInformationPolicy(IN LSA_HANDLE PolicyHandle,
-                        IN POLICY_INFORMATION_CLASS InformationClass,
-                        IN PVOID Buffer)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaSetInformationPolicy(%p %d %p)\n",
-          PolicyHandle, InformationClass, Buffer);
-
-    RpcTryExcept
-    {
-        Status = LsarSetInformationPolicy((LSAPR_HANDLE)PolicyHandle,
-                                          InformationClass,
-                                          (PLSAPR_POLICY_INFORMATION)Buffer);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @unimplemented
- */
-NTSTATUS
-WINAPI
-LsaSetInformationTrustedDomain(IN LSA_HANDLE TrustedDomainHandle,
-                               IN TRUSTED_INFORMATION_CLASS InformationClass,
-                               IN PVOID Buffer)
-{
-    FIXME("LsaSetInformationTrustedDomain(%p %d %p)\n",
-          TrustedDomainHandle, InformationClass, Buffer);
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaSetQuotasForAccount(IN LSA_HANDLE AccountHandle,
-                       IN PQUOTA_LIMITS QuotaLimits)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaSetQuotasForAccount(%p %p)\n",
-          AccountHandle, QuotaLimits);
-
-    RpcTryExcept
-    {
-        Status = LsarSetQuotasForAccount((LSAPR_HANDLE)AccountHandle,
-                                         QuotaLimits);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaSetSecret(IN LSA_HANDLE SecretHandle,
-             IN PLSA_UNICODE_STRING CurrentValue OPTIONAL,
-             IN PLSA_UNICODE_STRING OldValue OPTIONAL)
-{
-    PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue = NULL;
-    PLSAPR_CR_CIPHER_VALUE EncryptedOldValue = NULL;
-    SIZE_T BufferSize;
-    NTSTATUS Status;
-
-    TRACE("LsaSetSecret(%p %p %p)\n",
-          SecretHandle, EncryptedCurrentValue, EncryptedOldValue);
-
-    if (CurrentValue != NULL)
-    {
-        BufferSize = sizeof(LSAPR_CR_CIPHER_VALUE) + CurrentValue->MaximumLength;
-        EncryptedCurrentValue = midl_user_allocate(BufferSize);
-        if (EncryptedCurrentValue == NULL)
-        {
-            Status = STATUS_INSUFFICIENT_RESOURCES;
-            goto done;
-        }
-
-        EncryptedCurrentValue->Length = CurrentValue->Length;
-        EncryptedCurrentValue->MaximumLength = CurrentValue->MaximumLength;
-        EncryptedCurrentValue->Buffer = (BYTE *)(EncryptedCurrentValue + 1);
-        if (EncryptedCurrentValue->Buffer != NULL)
-            memcpy(EncryptedCurrentValue->Buffer, CurrentValue->Buffer, CurrentValue->Length);
-    }
-
-    if (OldValue != NULL)
-    {
-        BufferSize = sizeof(LSAPR_CR_CIPHER_VALUE) + OldValue->MaximumLength;
-        EncryptedOldValue = midl_user_allocate(BufferSize);
-        if (EncryptedOldValue == NULL)
-        {
-            Status = STATUS_INSUFFICIENT_RESOURCES;
-            goto done;
-        }
-
-        EncryptedOldValue->Length = OldValue->Length;
-        EncryptedOldValue->MaximumLength = OldValue->MaximumLength;
-        EncryptedOldValue->Buffer = (BYTE*)(EncryptedOldValue + 1);
-        if (EncryptedOldValue->Buffer != NULL)
-            memcpy(EncryptedOldValue->Buffer, OldValue->Buffer, OldValue->Length);
-    }
-
-    RpcTryExcept
-    {
-        Status = LsarSetSecret((LSAPR_HANDLE)SecretHandle,
-                               EncryptedCurrentValue,
-                               EncryptedOldValue);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-done:
-    if (EncryptedCurrentValue != NULL)
-        midl_user_free(EncryptedCurrentValue);
-
-    if (EncryptedOldValue != NULL)
-        midl_user_free(EncryptedOldValue);
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaSetSecurityObject(IN LSA_HANDLE ObjectHandle,
-                     IN SECURITY_INFORMATION SecurityInformation,
-                     IN PSECURITY_DESCRIPTOR SecurityDescriptor)
-{
-    LSAPR_SR_SECURITY_DESCRIPTOR SdBuffer = {0, NULL};
-    ULONG SdLength = 0;
-    NTSTATUS Status;
-
-    TRACE("LsaSetSecurityObject(%p %lx %p)\n",
-          ObjectHandle, SecurityInformation, SecurityDescriptor);
-
-    Status = RtlMakeSelfRelativeSD(SecurityDescriptor,
-                                   NULL,
-                                   &SdLength);
-    if (Status != STATUS_BUFFER_TOO_SMALL)
-        return STATUS_INVALID_PARAMETER;
-
-    SdBuffer.SecurityDescriptor = MIDL_user_allocate(SdLength);
-    if (SdBuffer.SecurityDescriptor == NULL)
-        return STATUS_INSUFFICIENT_RESOURCES;
-
-    Status = RtlMakeSelfRelativeSD(SecurityDescriptor,
-                                   (PSECURITY_DESCRIPTOR)SdBuffer.SecurityDescriptor,
-                                   &SdLength);
-    if (!NT_SUCCESS(Status))
-        goto done;
-
-    SdBuffer.Length = SdLength;
-
-    RpcTryExcept
-    {
-        Status = LsarSetSecurityObject((LSAPR_HANDLE)ObjectHandle,
-                                       SecurityInformation,
-                                       &SdBuffer);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-done:
-    if (SdBuffer.SecurityDescriptor != NULL)
-        MIDL_user_free(SdBuffer.SecurityDescriptor);
-
-    return Status;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaSetSystemAccessAccount(IN LSA_HANDLE AccountHandle,
-                          IN ULONG SystemAccess)
-{
-    NTSTATUS Status;
-
-    TRACE("LsaSetSystemAccessAccount(%p 0x%lx)\n",
-          AccountHandle, SystemAccess);
-
-    RpcTryExcept
-    {
-        Status = LsarSetSystemAccessAccount((LSAPR_HANDLE)AccountHandle,
-                                            SystemAccess);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-    return Status;
-}
-
-
-/*
- * @unimplemented
- */
-NTSTATUS
-WINAPI
-LsaSetTrustedDomainInfoByName(IN LSA_HANDLE PolicyHandle,
-                              IN PLSA_UNICODE_STRING TrustedDomainName,
-                              IN TRUSTED_INFORMATION_CLASS InformationClass,
-                              IN PVOID Buffer)
-{
-    FIXME("LsaSetTrustedDomainInfoByName(%p %p %d %p) stub\n",
-          PolicyHandle, TrustedDomainName, InformationClass, Buffer);
-    return STATUS_SUCCESS;
-}
-
-
-/*
- * @unimplemented
- */
-NTSTATUS
-WINAPI
-LsaSetTrustedDomainInformation(IN LSA_HANDLE PolicyHandle,
-                               IN PSID TrustedDomainSid,
-                               IN TRUSTED_INFORMATION_CLASS InformationClass,
-                               IN PVOID Buffer)
-{
-    FIXME("LsaSetTrustedDomainInformation(%p %p %d %p) stub\n",
-          PolicyHandle, TrustedDomainSid, InformationClass, Buffer);
-    return STATUS_SUCCESS;
-}
-
-
-/*
- * @implemented
- */
-NTSTATUS
-WINAPI
-LsaStorePrivateData(IN LSA_HANDLE PolicyHandle,
-                    IN PLSA_UNICODE_STRING KeyName,
-                    IN PLSA_UNICODE_STRING PrivateData OPTIONAL)
-{
-    PLSAPR_CR_CIPHER_VALUE EncryptedData = NULL;
-    SIZE_T BufferSize;
-    NTSTATUS Status;
-
-    TRACE("LsaStorePrivateData(%p %p %p)\n",
-          PolicyHandle, KeyName, PrivateData);
-
-    if (PrivateData != NULL)
-    {
-        BufferSize = sizeof(LSAPR_CR_CIPHER_VALUE) + PrivateData->MaximumLength;
-        EncryptedData = midl_user_allocate(BufferSize);
-        if (EncryptedData == NULL)
-        {
-            Status = STATUS_INSUFFICIENT_RESOURCES;
-            goto done;
-        }
-
-        EncryptedData->Length = PrivateData->Length;
-        EncryptedData->MaximumLength = PrivateData->MaximumLength;
-        EncryptedData->Buffer = (BYTE *)(EncryptedData + 1);
-        if (EncryptedData->Buffer != NULL)
-            RtlCopyMemory(EncryptedData->Buffer,
-                          PrivateData->Buffer,
-                          PrivateData->Length);
-    }
-
-    RpcTryExcept
-    {
-        Status = LsarStorePrivateData((LSAPR_HANDLE)PolicyHandle,
-                                      (PRPC_UNICODE_STRING)KeyName,
-                                      EncryptedData);
-    }
-    RpcExcept(EXCEPTION_EXECUTE_HANDLER)
-    {
-        Status = I_RpcMapWin32Status(RpcExceptionCode());
-    }
-    RpcEndExcept;
-
-done:
-    if (EncryptedData != NULL)
-        midl_user_free(EncryptedData);
-
-    return Status;
-}
-
-/* EOF */