diff --git a/reactos/dll/win32/advapi32/sec/lsa.c b/reactos/dll/win32/advapi32/sec/lsa.c index 831c6ea70bc..9cb5d4b1a75 100644 --- a/reactos/dll/win32/advapi32/sec/lsa.c +++ b/reactos/dll/win32/advapi32/sec/lsa.c @@ -16,34 +16,17 @@ WINE_DEFAULT_DEBUG_CHANNEL(advapi); -static handle_t LSABindingHandle = NULL; -static VOID -LSAHandleUnbind(handle_t *Handle) -{ - RPC_STATUS status; - - if (*Handle == NULL) - return; - - status = RpcBindingFree(Handle); - if (status) - { - TRACE("RpcBindingFree returned 0x%x\n", status); - } -} - -static VOID -LSAHandleBind(VOID) +handle_t __RPC_USER +PLSAPR_SERVER_NAME_bind(PLSAPR_SERVER_NAME pszSystemName) { + handle_t hBinding = NULL; LPWSTR pszStringBinding; RPC_STATUS status; - handle_t Handle; - if (LSABindingHandle != NULL) - return; + TRACE("PLSAPR_SERVER_NAME_bind() called\n"); - status = RpcStringBindingComposeW(NULL, + status = RpcStringBindingComposeW(pszSystemName, L"ncacn_np", NULL, L"\\pipe\\lsarpc", @@ -52,12 +35,12 @@ LSAHandleBind(VOID) if (status) { TRACE("RpcStringBindingCompose returned 0x%x\n", status); - return; + return NULL; } /* Set the binding handle that will be used to bind to the server. */ status = RpcBindingFromStringBindingW(pszStringBinding, - &Handle); + &hBinding); if (status) { TRACE("RpcBindingFromStringBinding returned 0x%x\n", status); @@ -69,11 +52,22 @@ LSAHandleBind(VOID) TRACE("RpcStringFree returned 0x%x\n", status); } - if (InterlockedCompareExchangePointer(&LSABindingHandle, - (PVOID)Handle, - NULL) != NULL) + 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) { - LSAHandleUnbind(&Handle); + TRACE("RpcBindingFree returned 0x%x\n", status); } } @@ -90,10 +84,7 @@ LsaClose(LSA_HANDLE ObjectHandle) if (ObjectHandle == (LSA_HANDLE)0xcafe) return STATUS_SUCCESS; - LSAHandleBind(); - - return LsarClose(LSABindingHandle, - (unsigned long *)&ObjectHandle); + return LsarClose((PLSAPR_HANDLE)&ObjectHandle); } @@ -105,10 +96,7 @@ LsaDelete(LSA_HANDLE ObjectHandle) { TRACE("LsaDelete(0x%p) called\n", ObjectHandle); - LSAHandleBind(); - - return LsarDelete(LSABindingHandle, - (unsigned long)ObjectHandle); + return LsarDelete((LSAPR_HANDLE)ObjectHandle); } diff --git a/reactos/dll/win32/lsasrv/lsarpc.c b/reactos/dll/win32/lsasrv/lsarpc.c index b0d51b392fb..19d071507ce 100644 --- a/reactos/dll/win32/lsasrv/lsarpc.c +++ b/reactos/dll/win32/lsasrv/lsarpc.c @@ -123,9 +123,14 @@ LsarStartRpcServer(VOID) } +void __RPC_USER LSAPR_HANDLE_rundown(LSAPR_HANDLE hHandle) +{ + +} + + /* Function 0 */ NTSTATUS LsarClose( - handle_t hBinding, LSAPR_HANDLE *ObjectHandle) { #if 0 @@ -153,7 +158,6 @@ NTSTATUS LsarClose( /* Function 1 */ NTSTATUS LsarDelete( - handle_t hBinding, LSAPR_HANDLE ObjectHandle) { /* Deprecated */ @@ -163,7 +167,6 @@ NTSTATUS LsarDelete( /* Function 2 */ NTSTATUS LsarEnumeratePrivileges( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, DWORD *EnumerationContext, PLSAPR_PRIVILEGE_ENUM_BUFFER EnumerationBuffer, @@ -176,7 +179,6 @@ NTSTATUS LsarEnumeratePrivileges( /* Function 3 */ NTSTATUS LsarQuerySecurityObject( - handle_t hBinding, LSAPR_HANDLE ObjectHandle, SECURITY_INFORMATION SecurityInformation, PLSAPR_SR_SECURITY_DESCRIPTOR *SecurityDescriptor) @@ -188,7 +190,6 @@ NTSTATUS LsarQuerySecurityObject( /* Function 4 */ NTSTATUS LsarSetSecurityObject( - handle_t hBinding, LSAPR_HANDLE ObjectHandle, SECURITY_INFORMATION SecurityInformation, PLSAPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor) @@ -200,7 +201,7 @@ NTSTATUS LsarSetSecurityObject( /* Function 5 */ NTSTATUS LsarChangePassword( - handle_t hBinding, + handle_t hBinding, /* FIXME */ PRPC_UNICODE_STRING String1, PRPC_UNICODE_STRING String2, PRPC_UNICODE_STRING String3, @@ -214,7 +215,6 @@ NTSTATUS LsarChangePassword( /* Function 6 */ NTSTATUS LsarOpenPolicy( - handle_t hBinding, LPWSTR SystemName, PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes, ACCESS_MASK DesiredAccess, @@ -227,7 +227,6 @@ NTSTATUS LsarOpenPolicy( /* Function 7 */ NTSTATUS LsarQueryInformationPolicy( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, POLICY_INFORMATION_CLASS InformationClass, unsigned long PolicyInformation) @@ -239,7 +238,6 @@ NTSTATUS LsarQueryInformationPolicy( /* Function 8 */ NTSTATUS LsarSetInformationPolicy( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, POLICY_INFORMATION_CLASS InformationClass, unsigned long *PolicyInformation) @@ -251,7 +249,6 @@ NTSTATUS LsarSetInformationPolicy( /* Function 9 */ NTSTATUS LsarClearAuditLog( - handle_t hBinding, LSAPR_HANDLE ObjectHandle) { /* Deprecated */ @@ -261,7 +258,7 @@ NTSTATUS LsarClearAuditLog( /* Function 10 */ NTSTATUS LsarCreateAccount( - handle_t hBinding, + LSAPR_HANDLE PolicyHandle, PRPC_SID AccountSid, ACCESS_MASK DesiredAccess, LSAPR_HANDLE *AccountHandle) @@ -273,7 +270,6 @@ NTSTATUS LsarCreateAccount( /* Function 11 */ NTSTATUS LsarEnumerateAccounts( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, DWORD *EnumerationContext, PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer, @@ -286,7 +282,6 @@ NTSTATUS LsarEnumerateAccounts( /* Function 12 */ NTSTATUS LsarCreateTrustedDomain( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PLSAPR_TRUST_INFORMATION TrustedDomainInformation, ACCESS_MASK DesiredAccess, @@ -299,7 +294,6 @@ NTSTATUS LsarCreateTrustedDomain( /* Function 13 */ NTSTATUS LsarEnumerateTrustedDomains( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, DWORD *EnumerationContext, PLSAPR_TRUSTED_ENUM_BUFFER EnumerationBuffer, @@ -312,7 +306,6 @@ NTSTATUS LsarEnumerateTrustedDomains( /* Function 14 */ NTSTATUS LsarLookupNames( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, DWORD Count, PRPC_UNICODE_STRING Names, @@ -328,7 +321,6 @@ NTSTATUS LsarLookupNames( /* Function 15 */ NTSTATUS LsarLookupSids( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PLSAPR_SID_ENUM_BUFFER SidEnumBuffer, PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains, @@ -343,7 +335,6 @@ NTSTATUS LsarLookupSids( /* Function 16 */ NTSTATUS LsarCreateSecret( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_UNICODE_STRING SecretName, ACCESS_MASK DesiredAccess, @@ -356,7 +347,6 @@ NTSTATUS LsarCreateSecret( /* Function 17 */ NTSTATUS LsarOpenAccount( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_SID AccountSid, ACCESS_MASK DesiredAccess, @@ -369,7 +359,6 @@ NTSTATUS LsarOpenAccount( /* Function 18 */ NTSTATUS LsarEnumeratePrivilegesAccount( - handle_t hBinding, LSAPR_HANDLE AccountHandle, PLSAPR_PRIVILEGE_SET *Privileges) { @@ -380,7 +369,6 @@ NTSTATUS LsarEnumeratePrivilegesAccount( /* Function 19 */ NTSTATUS LsarAddPrivilegesToAccount( - handle_t hBinding, LSAPR_HANDLE AccountHandle, PLSAPR_PRIVILEGE_SET Privileges) { @@ -391,7 +379,6 @@ NTSTATUS LsarAddPrivilegesToAccount( /* Function 20 */ NTSTATUS LsarRemovePrivilegesFromAccount( - handle_t hBinding, LSAPR_HANDLE AccountHandle, BOOL AllPrivileges, PLSAPR_PRIVILEGE_SET Privileges) @@ -403,7 +390,6 @@ NTSTATUS LsarRemovePrivilegesFromAccount( /* Function 21 */ NTSTATUS LsarGetQuotasForAccount( - handle_t hBinding, LSAPR_HANDLE AccountHandle, PQUOTA_LIMITS QuotaLimits) { @@ -414,7 +400,6 @@ NTSTATUS LsarGetQuotasForAccount( /* Function 22 */ NTSTATUS LsarSetQuotasForAccount( - handle_t hBinding, LSAPR_HANDLE AccountHandle, PQUOTA_LIMITS QuotaLimits) { @@ -425,7 +410,6 @@ NTSTATUS LsarSetQuotasForAccount( /* Function 23 */ NTSTATUS LsarGetSystemAccessAccount( - handle_t hBinding, LSAPR_HANDLE AccountHandle, ACCESS_MASK *SystemAccess) { @@ -436,7 +420,6 @@ NTSTATUS LsarGetSystemAccessAccount( /* Function 24 */ NTSTATUS LsarSetSystemAccessAccount( - handle_t hBinding, LSAPR_HANDLE AccountHandle, ACCESS_MASK SystemAccess) { @@ -447,7 +430,6 @@ NTSTATUS LsarSetSystemAccessAccount( /* Function 25 */ NTSTATUS LsarOpenTrustedDomain( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_SID TrustedDomainSid, ACCESS_MASK DesiredAccess, @@ -460,7 +442,6 @@ NTSTATUS LsarOpenTrustedDomain( /* Function 26 */ NTSTATUS LsarQueryInfoTrustedDomain( - handle_t hBinding, LSAPR_HANDLE TrustedDomainHandle, TRUSTED_INFORMATION_CLASS InformationClass, PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation) @@ -472,7 +453,6 @@ NTSTATUS LsarQueryInfoTrustedDomain( /* Function 27 */ NTSTATUS LsarSetInformationTrustedDomain( - handle_t hBinding, LSAPR_HANDLE TrustedDomainHandle, TRUSTED_INFORMATION_CLASS InformationClass, PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation) @@ -484,7 +464,6 @@ NTSTATUS LsarSetInformationTrustedDomain( /* Function 28 */ NTSTATUS LsarOpenSecret( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_UNICODE_STRING SecretName, ACCESS_MASK DesiredAccess, @@ -497,7 +476,6 @@ NTSTATUS LsarOpenSecret( /* Function 29 */ NTSTATUS LsarSetSecret( - handle_t hBinding, LSAPR_HANDLE *SecretHandle, PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue, PLSAPR_CR_CIPHER_VALUE EncryptedOldValue) @@ -509,7 +487,6 @@ NTSTATUS LsarSetSecret( /* Function 30 */ NTSTATUS LsarQuerySecret( - handle_t hBinding, LSAPR_HANDLE SecretHandle, PLSAPR_CR_CIPHER_VALUE *EncryptedCurrentValue, PLARGE_INTEGER CurrentValueSetTime, @@ -523,7 +500,6 @@ NTSTATUS LsarQuerySecret( /* Function 31 */ NTSTATUS LsarLookupPrivilegeValue( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_UNICODE_STRING Name, PLUID Value) @@ -535,7 +511,6 @@ NTSTATUS LsarLookupPrivilegeValue( /* Function 32 */ NTSTATUS LsarLookupPrivilegeName( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PLUID Value, PRPC_UNICODE_STRING *Name) @@ -547,7 +522,7 @@ NTSTATUS LsarLookupPrivilegeName( /* Function 33 */ NTSTATUS LsarLookupPrivilegeDisplayName( - handle_t hBinding, + LSAPR_HANDLE PolicyHandle, /* FIXME */ USHORT *LanguageReturned) { UNIMPLEMENTED; @@ -557,7 +532,6 @@ NTSTATUS LsarLookupPrivilegeDisplayName( /* Function 34 */ NTSTATUS LsarDeleteObject( - handle_t hBinding, LSAPR_HANDLE *ObjectHandle) { UNIMPLEMENTED; @@ -567,7 +541,6 @@ NTSTATUS LsarDeleteObject( /* Function 35 */ NTSTATUS LsarEnumerateAccountsWithUserRight( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_UNICODE_STRING UserRight, PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer) @@ -579,7 +552,6 @@ NTSTATUS LsarEnumerateAccountsWithUserRight( /* Function 36 */ NTSTATUS LsarEnmuerateAccountRights( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_SID AccountSid, PLSAPR_USER_RIGHT_SET UserRights) @@ -591,7 +563,6 @@ NTSTATUS LsarEnmuerateAccountRights( /* Function 37 */ NTSTATUS LsarAddAccountRights( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_SID AccountSid, PLSAPR_USER_RIGHT_SET UserRights) @@ -603,7 +574,6 @@ NTSTATUS LsarAddAccountRights( /* Function 38 */ NTSTATUS LsarRemoveAccountRights( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_SID AccountSid, BOOL AllRights, @@ -616,7 +586,6 @@ NTSTATUS LsarRemoveAccountRights( /* Function 39 */ NTSTATUS LsarQueryTrustedDomainInfo( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_SID TrustedDomainSid, TRUSTED_INFORMATION_CLASS InformationClass, @@ -629,7 +598,6 @@ NTSTATUS LsarQueryTrustedDomainInfo( /* Function 40 */ NTSTATUS LsarSetTrustedDomainInfo( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_SID TrustedDomainSid, TRUSTED_INFORMATION_CLASS InformationClass, @@ -642,7 +610,6 @@ NTSTATUS LsarSetTrustedDomainInfo( /* Function 41 */ NTSTATUS LsarDeleteTrustedDomain( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_SID TrustedDomainSid) { @@ -653,7 +620,6 @@ NTSTATUS LsarDeleteTrustedDomain( /* Function 42 */ NTSTATUS LsarStorePrivateData( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_UNICODE_STRING KeyName, PLSAPR_CR_CIPHER_VALUE EncryptedData) @@ -665,7 +631,6 @@ NTSTATUS LsarStorePrivateData( /* Function 43 */ NTSTATUS LsarRetrievePrivateData( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_UNICODE_STRING KeyName, PLSAPR_CR_CIPHER_VALUE *EncryptedData) @@ -677,7 +642,6 @@ NTSTATUS LsarRetrievePrivateData( /* Function 44 */ NTSTATUS LsarOpenPolicy2( - handle_t hBinding, LPWSTR SystemName, PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes, ACCESS_MASK DesiredAccess, @@ -690,7 +654,6 @@ NTSTATUS LsarOpenPolicy2( /* Function 45 */ NTSTATUS LsarGetUserName( - handle_t hBinding, LPWSTR SystemName, PRPC_UNICODE_STRING *UserName, PRPC_UNICODE_STRING *DomainName) @@ -702,7 +665,6 @@ NTSTATUS LsarGetUserName( /* Function 46 */ NTSTATUS LsarQueryInformationPolicy2( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, POLICY_INFORMATION_CLASS InformationClass, unsigned long *PolicyInformation) @@ -714,7 +676,6 @@ NTSTATUS LsarQueryInformationPolicy2( /* Function 47 */ NTSTATUS LsarSetInformationPolicy2( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, POLICY_INFORMATION_CLASS InformationClass, unsigned long PolicyInformation) @@ -726,7 +687,6 @@ NTSTATUS LsarSetInformationPolicy2( /* Function 48 */ NTSTATUS LsarQueryTrustedDomainInfoByName( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_UNICODE_STRING TrustedDomainName, POLICY_INFORMATION_CLASS InformationClass, @@ -739,7 +699,6 @@ NTSTATUS LsarQueryTrustedDomainInfoByName( /* Function 49 */ NTSTATUS LsarSetTrustedDomainInfoByName( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_UNICODE_STRING TrustedDomainName, POLICY_INFORMATION_CLASS InformationClass, @@ -752,7 +711,6 @@ NTSTATUS LsarSetTrustedDomainInfoByName( /* Function 50 */ NTSTATUS LsarEnumerateTrustedDomainsEx( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, DWORD *EnumerationContext, PLSAPR_TRUSTED_ENUM_BUFFER_EX EnumerationBuffer, @@ -765,7 +723,6 @@ NTSTATUS LsarEnumerateTrustedDomainsEx( /* Function 51 */ NTSTATUS LsarCreateTrustedDomainEx( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation, PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthentificationInformation, @@ -779,7 +736,6 @@ NTSTATUS LsarCreateTrustedDomainEx( /* Function 52 */ NTSTATUS LsarSetPolicyReplicationHandle( - handle_t hBinding, PLSAPR_HANDLE PolicyHandle) { /* Deprecated */ @@ -789,7 +745,6 @@ NTSTATUS LsarSetPolicyReplicationHandle( /* Function 53 */ NTSTATUS LsarQueryDomainInformationPolicy( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, POLICY_INFORMATION_CLASS InformationClass, unsigned long *PolicyInformation) @@ -801,7 +756,6 @@ NTSTATUS LsarQueryDomainInformationPolicy( /* Function 54 */ NTSTATUS LsarSetDomainInformationPolicy( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, POLICY_INFORMATION_CLASS InformationClass, unsigned long PolicyInformation) @@ -813,7 +767,6 @@ NTSTATUS LsarSetDomainInformationPolicy( /* Function 55 */ NTSTATUS LsarOpenTrustedDomainByName( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PRPC_UNICODE_STRING TrustedDomainName, ACCESS_MASK DesiredAccess, @@ -835,7 +788,6 @@ NTSTATUS LsarTestCall( /* Function 57 */ NTSTATUS LsarLookupSids2( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PLSAPR_SID_ENUM_BUFFER SidEnumBuffer, PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains, @@ -852,7 +804,6 @@ NTSTATUS LsarLookupSids2( /* Function 58 */ NTSTATUS LsarLookupNames2( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, DWORD Count, PRPC_UNICODE_STRING Names, @@ -870,7 +821,6 @@ NTSTATUS LsarLookupNames2( /* Function 59 */ NTSTATUS LsarCreateTrustedDomainEx2( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation, PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthentificationInformation, @@ -956,7 +906,6 @@ NTSTATUS CredrProfileLoaded( /* Function 68 */ NTSTATUS LsarLookupNames3( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, DWORD Count, PRPC_UNICODE_STRING Names, @@ -1010,7 +959,6 @@ NTSTATUS LsarUnregisterAuditEvent( /* Function 73 */ NTSTATUS LsarQueryForestTrustInformation( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PLSA_UNICODE_STRING TrustedDomainName, LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType, @@ -1023,7 +971,6 @@ NTSTATUS LsarQueryForestTrustInformation( /* Function 74 */ NTSTATUS LsarSetForestTrustInformation( - handle_t hBinding, LSAPR_HANDLE PolicyHandle, PLSA_UNICODE_STRING TrustedDomainName, LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType, @@ -1114,5 +1061,4 @@ NTSTATUS LsarAdtReportSecurityEvent( return STATUS_NOT_IMPLEMENTED; } - /* EOF */ diff --git a/reactos/include/reactos/idl/lsa.idl b/reactos/include/reactos/idl/lsa.idl index a09896cc760..621bf27907c 100644 --- a/reactos/include/reactos/idl/lsa.idl +++ b/reactos/include/reactos/idl/lsa.idl @@ -4,7 +4,9 @@ #include -typedef /*[context_handle]*/ unsigned long LSAPR_HANDLE; +typedef [handle] LPWSTR PLSAPR_SERVER_NAME; + +typedef [context_handle] PVOID LSAPR_HANDLE; typedef LSAPR_HANDLE *PLSAPR_HANDLE; cpp_quote("#ifndef _WINNT_H") @@ -599,17 +601,14 @@ interface lsarpc { /* Function 0 */ NTSTATUS LsarClose( - [in] handle_t hBinding, [in, out] LSAPR_HANDLE *ObjectHandle); /* Function 1 */ 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, @@ -617,21 +616,19 @@ interface lsarpc /* 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] handle_t hBinding, /* FIXME */ [in] PRPC_UNICODE_STRING String1, [in] PRPC_UNICODE_STRING String2, [in] PRPC_UNICODE_STRING String3, @@ -640,15 +637,13 @@ interface lsarpc /* Function 6 */ NTSTATUS LsarOpenPolicy( - [in] handle_t hBinding, - [in, unique] LPWSTR SystemName, + [in, unique] PLSAPR_SERVER_NAME 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); @@ -656,7 +651,6 @@ interface lsarpc /* Function 8 */ NTSTATUS LsarSetInformationPolicy( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [out] unsigned long *PolicyInformation); @@ -664,19 +658,17 @@ interface lsarpc /* Function 9 */ NTSTATUS LsarClearAuditLog( - [in] handle_t hBinding, [in] LSAPR_HANDLE ObjectHandle); /* Function 10 */ NTSTATUS LsarCreateAccount( - [in] handle_t hBinding, + [in] LSAPR_HANDLE PolicyHandle, [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, @@ -684,7 +676,6 @@ interface lsarpc /* Function 12 */ NTSTATUS LsarCreateTrustedDomain( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_TRUST_INFORMATION TrustedDomainInformation, [in] ACCESS_MASK DesiredAccess, @@ -692,7 +683,6 @@ interface lsarpc /* Function 13 */ NTSTATUS LsarEnumerateTrustedDomains( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in, out] DWORD *EnumerationContext, [out] PLSAPR_TRUSTED_ENUM_BUFFER EnumerationBuffer, @@ -700,7 +690,6 @@ interface lsarpc /* Function 14 */ NTSTATUS LsarLookupNames( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] DWORD Count, [in, size_is(Count)] PRPC_UNICODE_STRING Names, @@ -711,7 +700,6 @@ interface lsarpc /* Function 15 */ NTSTATUS LsarLookupSids( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer, [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains, @@ -721,7 +709,6 @@ interface lsarpc /* Function 16 */ NTSTATUS LsarCreateSecret( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING SecretName, [in] ACCESS_MASK DesiredAccess, @@ -729,7 +716,6 @@ interface lsarpc /* Function 17 */ NTSTATUS LsarOpenAccount( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID AccountSid, [in] ACCESS_MASK DesiredAccess, @@ -737,50 +723,42 @@ interface lsarpc /* 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, @@ -788,21 +766,18 @@ interface lsarpc /* 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, @@ -810,14 +785,12 @@ interface lsarpc /* 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, @@ -826,23 +799,20 @@ interface lsarpc /* 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] LSAPR_HANDLE PolicyHandle, /* FIXME */ + /*[in] PRPC_UNICODE_STRING Name, [in] USHORT ClientLanguage, [in] USHORT ClientSystemDefaultLanguage, [out] PRPC_UNICODE_STRING *DisplayName,*/ @@ -850,35 +820,30 @@ interface lsarpc /* 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, @@ -886,7 +851,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0351") /* Function 39 */ NTSTATUS LsarQueryTrustedDomainInfo( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID TrustedDomainSid, [in] TRUSTED_INFORMATION_CLASS InformationClass, @@ -894,7 +858,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0351") /* Function 40 */ NTSTATUS LsarSetTrustedDomainInfo( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_SID TrustedDomainSid, [in] TRUSTED_INFORMATION_CLASS InformationClass, @@ -902,36 +865,31 @@ cpp_quote("#if _WIN32_WINNT >= 0x0351") /* 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, unique, string] PLSAPR_SERVER_NAME 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, unique, string] PLSAPR_SERVER_NAME SystemName, [in, out] PRPC_UNICODE_STRING *UserName, [in, out, unique] PRPC_UNICODE_STRING *DomainName); @@ -939,7 +897,6 @@ 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); @@ -947,7 +904,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0500") /* Function 47 */ NTSTATUS LsarSetInformationPolicy2( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [in] unsigned long PolicyInformation); @@ -955,7 +911,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0500") /* Function 48 */ NTSTATUS LsarQueryTrustedDomainInfoByName( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING TrustedDomainName, [in] POLICY_INFORMATION_CLASS InformationClass, @@ -964,7 +919,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0500") /* Function 49 */ NTSTATUS LsarSetTrustedDomainInfoByName( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING TrustedDomainName, [in] POLICY_INFORMATION_CLASS InformationClass, @@ -973,7 +927,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0500") /* Function 50 */ NTSTATUS LsarEnumerateTrustedDomainsEx( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in, out] DWORD *EnumerationContext, [out] PLSAPR_TRUSTED_ENUM_BUFFER_EX EnumerationBuffer, @@ -981,7 +934,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0500") /* 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, @@ -990,12 +942,10 @@ cpp_quote("#if _WIN32_WINNT >= 0x0500") /* 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); @@ -1003,7 +953,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0500") /* Function 54 */ NTSTATUS LsarSetDomainInformationPolicy( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] POLICY_INFORMATION_CLASS InformationClass, [in] unsigned long PolicyInformation); @@ -1011,7 +960,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0500") /* Function 55 */ NTSTATUS LsarOpenTrustedDomainByName( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] PRPC_UNICODE_STRING TrustedDomainName, [in] ACCESS_MASK DesiredAccess, @@ -1023,7 +971,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0500") /* Function 57 */ NTSTATUS LsarLookupSids2( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer, [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains, @@ -1035,7 +982,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0500") /* Function 58 */ NTSTATUS LsarLookupNames2( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] DWORD Count, [in, size_is(Count)] PRPC_UNICODE_STRING Names, @@ -1048,7 +994,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0500") /* 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, @@ -1091,7 +1036,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0501") /* Function 68 */ NTSTATUS LsarLookupNames3( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] DWORD Count, [in, size_is(Count)] PRPC_UNICODE_STRING Names, @@ -1120,7 +1064,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0501") /* Function 73 */ NTSTATUS LsarQueryForestTrustInformation( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] PLSA_UNICODE_STRING TrustedDomainName, [in] LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType, @@ -1128,7 +1071,6 @@ cpp_quote("#if _WIN32_WINNT >= 0x0501") /* Function 74 */ NTSTATUS LsarSetForestTrustInformation( - [in] handle_t hBinding, [in] LSAPR_HANDLE PolicyHandle, [in] PLSA_UNICODE_STRING TrustedDomainName, [in] LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType, @@ -1142,7 +1084,7 @@ cpp_quote("#if _WIN32_WINNT >= 0x0501") /* Function 76 */ NTSTATUS LsarLookupSids3( - [in] handle_t hBinding, + [in] handle_t hBinding, /* FIXME */ [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer, [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains, [in, out] PLSAPR_TRANSLATED_NAMES_EX TranslatedNames, @@ -1153,7 +1095,7 @@ cpp_quote("#if _WIN32_WINNT >= 0x0501") /* Function 77 */ NTSTATUS LsarLookupNames4( - [in] handle_t hBinding, + [in] handle_t hBinding, /* FIXME */ [in] handle_t RpcHandle, [in] DWORD Count, [in, size_is(Count)] PRPC_UNICODE_STRING Names,