From 0cc2031409074d67d70f54fe98edce35922c84b4 Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Mon, 3 Jan 2005 17:12:51 +0000 Subject: [PATCH] Stub implementations for GetKernelObjectSecurity, GetPrivateObjectSecurity, GetServiceKeyName{A,W}, ImpersonateNamedPipeClient, InitiateSystemShutdown{A,W}, IsTokenRestricted, LogonUser{A,W}, LookupAccountNameW, LookupPrivilegeDisplayName{A,W}, MapGenericMask, ObjectCloseAuditAlarm{A,W}, ObjectOpenAuditAlarm{A,W}, ObjectPrivilegeAuditAlarm{A,W}, PrivilegedServiceAuditAlarm{A,W}, QueryServiceLockStatus{A,W}, SetAclInformation, SetPrivateObjectSecurity, SetSecurityDescriptorControl, SetServiceBits, LsaSetInformationPolicy, LsaLookupNames, LsaEnumerateTrustedDomains. --- dlls/advapi32/advapi.c | 34 ++++++ dlls/advapi32/advapi32.spec | 62 +++++----- dlls/advapi32/security.c | 223 ++++++++++++++++++++++++++++++++++++ dlls/advapi32/service.c | 44 +++++++ include/lmserver.h | 1 + include/ntsecapi.h | 21 +++- include/winbase.h | 33 ++++++ include/winsvc.h | 22 ++++ 8 files changed, 403 insertions(+), 37 deletions(-) diff --git a/dlls/advapi32/advapi.c b/dlls/advapi32/advapi.c index ffbacbaf37b..04c88272e0f 100644 --- a/dlls/advapi32/advapi.c +++ b/dlls/advapi32/advapi.c @@ -213,6 +213,40 @@ BOOL WINAPI InitiateSystemShutdownExW( LPWSTR lpMachineName, LPWSTR lpMessage, return TRUE; } +BOOL WINAPI InitiateSystemShutdownA( LPSTR lpMachineName, LPSTR lpMessage, DWORD dwTimeout, + BOOL bForceAppsClosed, BOOL bRebootAfterShutdown ) +{ + return InitiateSystemShutdownExA( lpMachineName, lpMessage, dwTimeout, + bForceAppsClosed, bRebootAfterShutdown, + SHTDN_REASON_MAJOR_LEGACY_API ); +} + +BOOL WINAPI InitiateSystemShutdownW( LPWSTR lpMachineName, LPWSTR lpMessage, DWORD dwTimeout, + BOOL bForceAppsClosed, BOOL bRebootAfterShutdown ) +{ + return InitiateSystemShutdownExW( lpMachineName, lpMessage, dwTimeout, + bForceAppsClosed, bRebootAfterShutdown, + SHTDN_REASON_MAJOR_LEGACY_API ); +} + +BOOL WINAPI LogonUserA( LPCSTR lpszUsername, LPCSTR lpszDomain, LPCSTR lpszPassword, + DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken ) +{ + FIXME("%s %s %p 0x%08lx 0x%08lx %p - stub\n", debugstr_a(lpszUsername), + debugstr_a(lpszDomain), lpszPassword, dwLogonType, dwLogonProvider, phToken); + + return TRUE; +} + +BOOL WINAPI LogonUserW( LPCWSTR lpszUsername, LPCWSTR lpszDomain, LPCWSTR lpszPassword, + DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken ) +{ + FIXME("%s %s %p 0x%08lx 0x%08lx %p - stub\n", debugstr_w(lpszUsername), + debugstr_w(lpszDomain), lpszPassword, dwLogonType, dwLogonProvider, phToken); + + return TRUE; +} + DWORD WINAPI CommandLineFromMsiDescriptor(WCHAR *Descriptor, WCHAR *CommandLine, DWORD *CommandLineLength) { diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec index 087fa6f962e..8327f640dc0 100644 --- a/dlls/advapi32/advapi32.spec +++ b/dlls/advapi32/advapi32.spec @@ -118,14 +118,14 @@ @ stdcall GetExplicitEntriesFromAclW(ptr ptr ptr) @ stdcall GetFileSecurityA(str long ptr long ptr) @ stdcall GetFileSecurityW(wstr long ptr long ptr) -@ stub GetKernelObjectSecurity +@ stdcall GetKernelObjectSecurity(long long ptr long ptr) @ stdcall GetLengthSid(ptr) @ stub GetMangledSiteSid @ stdcall GetNamedSecurityInfoA (str long long ptr ptr ptr ptr ptr) @ stdcall GetNamedSecurityInfoW (wstr long long ptr ptr ptr ptr ptr) @ stdcall GetNumberOfEventLogRecords (long ptr) @ stdcall GetOldestEventLogRecord (long ptr) -@ stub GetPrivateObjectSecurity +@ stdcall GetPrivateObjectSecurity(ptr long ptr long ptr) @ stdcall GetSecurityDescriptorControl (ptr ptr ptr) @ stdcall GetSecurityDescriptorDacl (ptr ptr ptr ptr) @ stdcall GetSecurityDescriptorGroup(ptr ptr ptr) @@ -136,8 +136,8 @@ @ stdcall GetSecurityInfoExW (long long long wstr wstr ptr ptr wstr wstr) @ stdcall GetServiceDisplayNameA(ptr str ptr ptr) @ stdcall GetServiceDisplayNameW(ptr wstr ptr ptr) -@ stub GetServiceKeyNameA -@ stub GetServiceKeyNameW +@ stdcall GetServiceKeyNameA(long str ptr ptr) +@ stdcall GetServiceKeyNameW(long wstr ptr ptr) @ stdcall GetSidIdentifierAuthority(ptr) @ stdcall GetSidLengthRequired(long) @ stdcall GetSidSubAuthority(ptr long) @@ -147,38 +147,38 @@ @ stdcall GetUserNameA(ptr ptr) @ stdcall GetUserNameW(ptr ptr) @ stdcall ImpersonateLoggedOnUser(long) -@ stub ImpersonateNamedPipeClient +@ stdcall ImpersonateNamedPipeClient(long) @ stdcall ImpersonateSelf(long) @ stdcall InitializeAcl(ptr long long) @ stdcall InitializeSecurityDescriptor(ptr long) @ stdcall InitializeSid(ptr ptr long) -@ stub InitiateSystemShutdownA -@ stub InitiateSystemShutdownW +@ stdcall InitiateSystemShutdownA(str str long long long) +@ stdcall InitiateSystemShutdownW(str str long long long) @ stdcall InitiateSystemShutdownExA(str str long long long long) @ stdcall InitiateSystemShutdownExW(wstr wstr long long long long) @ stub InstallApplication @ stub IsProcessRestricted @ stdcall IsTextUnicode(ptr long ptr) ntdll.RtlIsTextUnicode -@ stub IsTokenRestricted +@ stdcall IsTokenRestricted(long) @ stdcall IsValidAcl(ptr) @ stdcall IsValidSecurityDescriptor(ptr) @ stdcall IsValidSid(ptr) @ stdcall LockServiceDatabase(ptr) -@ stub LogonUserA -@ stub LogonUserW +@ stdcall LogonUserA(str str str long long ptr) +@ stdcall LogonUserW(wstr wstr wstr long long ptr) @ stdcall LookupAccountNameA(str str ptr ptr ptr ptr ptr) -@ stub LookupAccountNameW +@ stdcall LookupAccountNameW(wstr wstr ptr ptr ptr ptr ptr) @ stdcall LookupAccountSidA(ptr ptr ptr ptr ptr ptr ptr) @ stdcall LookupAccountSidW(ptr ptr ptr ptr ptr ptr ptr) -@ stub LookupPrivilegeDisplayNameA -@ stub LookupPrivilegeDisplayNameW +@ stdcall LookupPrivilegeDisplayNameA(str str str ptr ptr) +@ stdcall LookupPrivilegeDisplayNameW(wstr wstr wstr ptr ptr) @ stdcall LookupPrivilegeNameA(str ptr ptr long) @ stdcall LookupPrivilegeNameW(wstr ptr ptr long) @ stdcall LookupPrivilegeValueA(ptr ptr ptr) @ stdcall LookupPrivilegeValueW(ptr ptr ptr) @ stdcall MakeAbsoluteSD(ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) @ stdcall MakeSelfRelativeSD(ptr ptr ptr) -@ stub MapGenericMask +@ stdcall MapGenericMask(ptr ptr) @ stdcall MD4Final(ptr) @ stdcall MD4Init(ptr) @ stdcall MD4Update(ptr ptr long) @@ -187,12 +187,12 @@ @ stdcall MD5Update(ptr ptr long) @ stdcall NotifyBootConfigStatus(long) @ stdcall NotifyChangeEventLog (long long) -@ stub ObjectCloseAuditAlarmA -@ stub ObjectCloseAuditAlarmW -@ stub ObjectOpenAuditAlarmA -@ stub ObjectOpenAuditAlarmW -@ stub ObjectPrivilegeAuditAlarmA -@ stub ObjectPrivilegeAuditAlarmW +@ stdcall ObjectCloseAuditAlarmA(str ptr long) +@ stdcall ObjectCloseAuditAlarmW(wstr ptr long) +@ stdcall ObjectOpenAuditAlarmA(str ptr str str ptr long long long ptr long long ptr) +@ stdcall ObjectOpenAuditAlarmW(wstr ptr wstr wstr ptr long long long ptr long long ptr) +@ stdcall ObjectPrivilegeAuditAlarmA(str ptr long long ptr long) +@ stdcall ObjectPrivilegeAuditAlarmW(wstr ptr long long ptr long) @ stdcall OpenBackupEventLogA (str str) @ stdcall OpenBackupEventLogW (wstr wstr) @ stdcall OpenEventLogA (str str) @@ -204,12 +204,12 @@ @ stdcall OpenServiceW(long wstr long) @ stdcall OpenThreadToken(long long long ptr) @ stdcall PrivilegeCheck(ptr ptr ptr) -@ stub PrivilegedServiceAuditAlarmA -@ stub PrivilegedServiceAuditAlarmW +@ stdcall PrivilegedServiceAuditAlarmA(str str long ptr long) +@ stdcall PrivilegedServiceAuditAlarmW(wstr wstr long ptr long) @ stdcall QueryServiceConfigA(long ptr long ptr) @ stdcall QueryServiceConfigW(long ptr long ptr) -@ stub QueryServiceLockStatusA -@ stub QueryServiceLockStatusW +@ stdcall QueryServiceLockStatusA(long ptr long ptr) +@ stdcall QueryServiceLockStatusW(long ptr long ptr) @ stdcall QueryServiceObjectSecurity(long long ptr long ptr) @ stdcall QueryServiceStatus(long ptr) @ stdcall QueryServiceStatusEx (long long ptr long ptr) @@ -272,7 +272,7 @@ @ stdcall ReportEventA (long long long long ptr long long str ptr) @ stdcall ReportEventW (long long long long ptr long long wstr ptr) @ stdcall RevertToSelf() -@ stub SetAclInformation +@ stdcall SetAclInformation(ptr ptr long long) @ stdcall SetEntriesInAclA(long ptr ptr ptr) @ stdcall SetEntriesInAclW(long ptr ptr ptr) @ stdcall SetFileSecurityA(str long ptr ) @@ -280,13 +280,13 @@ @ stdcall SetKernelObjectSecurity(long long ptr) @ stdcall SetNamedSecurityInfoA(str long ptr ptr ptr ptr ptr) @ stdcall SetNamedSecurityInfoW(wstr long ptr ptr ptr ptr ptr) -@ stub SetPrivateObjectSecurity -@ stub SetSecurityDescriptorControl #(ptr long long) +@ stdcall SetPrivateObjectSecurity(long ptr ptr ptr long) +@ stdcall SetSecurityDescriptorControl(ptr long long) @ stdcall SetSecurityDescriptorDacl(ptr long ptr long) @ stdcall SetSecurityDescriptorGroup (ptr ptr long) @ stdcall SetSecurityDescriptorOwner (ptr ptr long) @ stdcall SetSecurityDescriptorSacl(ptr long ptr long) -@ stub SetServiceBits +@ stdcall SetServiceBits(long long long long) @ stdcall SetServiceObjectSecurity(long long ptr) @ stdcall SetServiceStatus(long long) @ stdcall SetThreadToken (ptr ptr) @@ -301,8 +301,8 @@ @ stdcall LsaFreeMemory(ptr) @ stdcall LsaQueryInformationPolicy(ptr long ptr) @ stdcall LsaClose(ptr) -@ stub LsaSetInformationPolicy -@ stub LsaLookupNames +@ stdcall LsaSetInformationPolicy(long long ptr) +@ stdcall LsaLookupNames(long long ptr ptr ptr) @ stub SystemFunction001 @ stub SystemFunction002 @ stub SystemFunction003 @@ -364,7 +364,7 @@ @ stub LsaEnumerateAccounts @ stub LsaGetSystemAccessAccount @ stub LsaSetInformationTrustedDomain -@ stub LsaEnumerateTrustedDomains +@ stdcall LsaEnumerateTrustedDomains(long ptr ptr long ptr) @ stdcall LsaNtStatusToWinError(long) @ stub LsaOpenAccount @ stub LsaEnumeratePrivileges diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c index 8d06d907d13..fe4c96226d6 100644 --- a/dlls/advapi32/security.c +++ b/dlls/advapi32/security.c @@ -442,6 +442,14 @@ CopySid( DWORD nDestinationSidLength, PSID pDestinationSid, PSID pSourceSid ) return RtlCopySid(nDestinationSidLength, pDestinationSid, pSourceSid); } +BOOL WINAPI +IsTokenRestricted( HANDLE TokenHandle ) +{ + FIXME("%p - stub\n", TokenHandle); + + return FALSE; +} + /****************************************************************************** * IsValidSid [ADVAPI32.@] * @@ -610,6 +618,31 @@ BOOL WINAPI MakeAbsoluteSD ( pPrimaryGroup, lpdwPrimaryGroupSize)); } +BOOL WINAPI GetKernelObjectSecurity( + HANDLE Handle, + SECURITY_INFORMATION RequestedInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + DWORD nLength, + LPDWORD lpnLengthNeeded ) +{ + FIXME("%p 0x%08lx %p 0x%08lx %p - stub\n", Handle, RequestedInformation, + pSecurityDescriptor, nLength, lpnLengthNeeded); + + return FALSE; +} + +BOOL WINAPI GetPrivateObjectSecurity( + PSECURITY_DESCRIPTOR ObjectDescriptor, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR ResultantDescriptor, + DWORD DescriptorLength, + PDWORD ReturnLength ) +{ + FIXME("%p 0x%08lx %p 0x%08lx %p - stub\n", ObjectDescriptor, SecurityInformation, + ResultantDescriptor, DescriptorLength, ReturnLength); + + return FALSE; +} /****************************************************************************** * GetSecurityDescriptorLength [ADVAPI32.@] @@ -776,6 +809,13 @@ BOOL WINAPI InitializeAcl(PACL acl, DWORD size, DWORD rev) return set_ntstatus( RtlCreateAcl(acl, size, rev)); } +BOOL WINAPI ImpersonateNamedPipeClient( HANDLE hNamedPipe ) +{ + FIXME("%p - stub\n", hNamedPipe); + + return FALSE; +} + /****************************************************************************** * AddAccessAllowedAce [ADVAPI32.@] */ @@ -1061,6 +1101,23 @@ LookupPrivilegeValueA( LPCSTR lpSystemName, LPCSTR lpName, PLUID lpLuid ) return ret; } +BOOL WINAPI LookupPrivilegeDisplayNameA( LPCSTR lpSystemName, LPCSTR lpName, LPSTR lpDisplayName, + LPDWORD cchDisplayName, LPDWORD lpLanguageId ) +{ + FIXME("%s %s %s %p %p - stub\n", debugstr_a(lpSystemName), debugstr_a(lpName), + debugstr_a(lpDisplayName), cchDisplayName, lpLanguageId); + + return FALSE; +} + +BOOL WINAPI LookupPrivilegeDisplayNameW( LPCWSTR lpSystemName, LPCWSTR lpName, LPWSTR lpDisplayName, + LPDWORD cchDisplayName, LPDWORD lpLanguageId ) +{ + FIXME("%s %s %s %p %p - stub\n", debugstr_w(lpSystemName), debugstr_w(lpName), + debugstr_w(lpDisplayName), cchDisplayName, lpLanguageId); + + return FALSE; +} /****************************************************************************** * LookupPrivilegeNameA [ADVAPI32.@] @@ -1384,6 +1441,35 @@ SynchronizeWindows31FilesAndWindowsNTRegistry( DWORD x1, DWORD x2, DWORD x3, return TRUE; } +NTSTATUS WINAPI +LsaEnumerateTrustedDomains( + LSA_HANDLE PolicyHandle, + PLSA_ENUMERATION_HANDLE EnumerationContext, + PVOID* Buffer, + ULONG PreferedMaximumLength, + PULONG CountReturned) +{ + FIXME("(%p,%p,%p,0x%08lx,%p):stub\n", PolicyHandle, EnumerationContext, + Buffer, PreferedMaximumLength, CountReturned); + + if (CountReturned) *CountReturned = 0; + return STATUS_SUCCESS; +} + +NTSTATUS WINAPI +LsaLookupNames( + LSA_HANDLE PolicyHandle, + ULONG Count, + PLSA_UNICODE_STRING Names, + PLSA_REFERENCED_DOMAIN_LIST* ReferencedDomains, + PLSA_TRANSLATED_SID* Sids) +{ + FIXME("(%p,0x%08lx,%p,%p,%p):stub\n", PolicyHandle, Count, Names, + ReferencedDomains, Sids); + + return STATUS_NONE_MAPPED; +} + /****************************************************************************** * LsaOpenPolicy [ADVAPI32.@] * @@ -1501,6 +1587,17 @@ LsaQueryInformationPolicy( return TRUE; } +NTSTATUS WINAPI +LsaSetInformationPolicy( + LSA_HANDLE PolicyHandle, + POLICY_INFORMATION_CLASS InformationClass, + PVOID Buffer) +{ + FIXME("(%p,0x%08x,%p):stub\n", PolicyHandle, InformationClass, Buffer); + + return STATUS_UNSUCCESSFUL; +} + /****************************************************************************** * LsaLookupSids [ADVAPI32.@] */ @@ -1658,6 +1755,15 @@ BOOL WINAPI AccessCheckByType( return !*AccessStatus; } +VOID WINAPI MapGenericMask( PDWORD AccessMask, PGENERIC_MAPPING GenericMapping ) +{ + FIXME("%p %p - stub\n", AccessMask, GenericMapping); + + *AccessMask |= GenericMapping->GenericRead; + *AccessMask |= GenericMapping->GenericWrite; + *AccessMask |= GenericMapping->GenericExecute; + *AccessMask |= GenericMapping->GenericAll; +} /************************************************************************* * SetKernelObjectSecurity [ADVAPI32.@] @@ -1745,6 +1851,16 @@ LookupAccountNameA( return ret; } +BOOL WINAPI LookupAccountNameW( LPCWSTR lpSystemName, LPCWSTR lpAccountName, PSID Sid, + LPDWORD cbSid, LPWSTR ReferencedDomainName, + LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse ) +{ + FIXME("%s %s %p %p %p %p %p - stub\n", debugstr_w(lpSystemName), debugstr_w(lpAccountName), + Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse); + + return FALSE; +} + /****************************************************************************** * PrivilegeCheck [ADVAPI32.@] */ @@ -1786,6 +1902,81 @@ BOOL WINAPI AccessCheckAndAuditAlarmW(LPCWSTR Subsystem, LPVOID HandleId, LPWSTR return TRUE; } +BOOL WINAPI ObjectCloseAuditAlarmA(LPCSTR SubsystemName, LPVOID HandleId, BOOL GenerateOnClose) +{ + FIXME("stub (%s,%p,%x)\n", debugstr_a(SubsystemName), HandleId, GenerateOnClose); + + return TRUE; +} + +BOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR SubsystemName, LPVOID HandleId, BOOL GenerateOnClose) +{ + FIXME("stub (%s,%p,%x)\n", debugstr_w(SubsystemName), HandleId, GenerateOnClose); + + return TRUE; +} + +BOOL WINAPI ObjectOpenAuditAlarmA(LPCSTR SubsystemName, LPVOID HandleId, LPSTR ObjectTypeName, + LPSTR ObjectName, PSECURITY_DESCRIPTOR pSecurityDescriptor, HANDLE ClientToken, DWORD DesiredAccess, + DWORD GrantedAccess, PPRIVILEGE_SET Privileges, BOOL ObjectCreation, BOOL AccessGranted, + LPBOOL GenerateOnClose) +{ + FIXME("stub (%s,%p,%s,%s,%p,%p,0x%08lx,0x%08lx,%p,%x,%x,%p)\n", debugstr_a(SubsystemName), + HandleId, debugstr_a(ObjectTypeName), debugstr_a(ObjectName), pSecurityDescriptor, + ClientToken, DesiredAccess, GrantedAccess, Privileges, ObjectCreation, AccessGranted, + GenerateOnClose); + + return TRUE; +} + +BOOL WINAPI ObjectOpenAuditAlarmW(LPCWSTR SubsystemName, LPVOID HandleId, LPWSTR ObjectTypeName, + LPWSTR ObjectName, PSECURITY_DESCRIPTOR pSecurityDescriptor, HANDLE ClientToken, DWORD DesiredAccess, + DWORD GrantedAccess, PPRIVILEGE_SET Privileges, BOOL ObjectCreation, BOOL AccessGranted, + LPBOOL GenerateOnClose) +{ + FIXME("stub (%s,%p,%s,%s,%p,%p,0x%08lx,0x%08lx,%p,%x,%x,%p)\n", debugstr_w(SubsystemName), + HandleId, debugstr_w(ObjectTypeName), debugstr_w(ObjectName), pSecurityDescriptor, + ClientToken, DesiredAccess, GrantedAccess, Privileges, ObjectCreation, AccessGranted, + GenerateOnClose); + + return TRUE; +} + +BOOL WINAPI ObjectPrivilegeAuditAlarmA( LPCSTR SubsystemName, LPVOID HandleId, HANDLE ClientToken, + DWORD DesiredAccess, PPRIVILEGE_SET Privileges, BOOL AccessGranted) +{ + FIXME("stub (%s,%p,%p,0x%08lx,%p,%x)\n", debugstr_a(SubsystemName), HandleId, ClientToken, + DesiredAccess, Privileges, AccessGranted); + + return TRUE; +} + +BOOL WINAPI ObjectPrivilegeAuditAlarmW( LPCWSTR SubsystemName, LPVOID HandleId, HANDLE ClientToken, + DWORD DesiredAccess, PPRIVILEGE_SET Privileges, BOOL AccessGranted) +{ + FIXME("stub (%s,%p,%p,0x%08lx,%p,%x)\n", debugstr_w(SubsystemName), HandleId, ClientToken, + DesiredAccess, Privileges, AccessGranted); + + return TRUE; +} + +BOOL WINAPI PrivilegedServiceAuditAlarmA( LPCSTR SubsystemName, LPCSTR ServiceName, HANDLE ClientToken, + PPRIVILEGE_SET Privileges, BOOL AccessGranted) +{ + FIXME("stub (%s,%s,%p,%p,%x)\n", debugstr_a(SubsystemName), debugstr_a(ServiceName), + ClientToken, Privileges, AccessGranted); + + return TRUE; +} + +BOOL WINAPI PrivilegedServiceAuditAlarmW( LPCWSTR SubsystemName, LPCWSTR ServiceName, HANDLE ClientToken, + PPRIVILEGE_SET Privileges, BOOL AccessGranted) +{ + FIXME("stub %s,%s,%p,%p,%x)\n", debugstr_w(SubsystemName), debugstr_w(ServiceName), + ClientToken, Privileges, AccessGranted); + + return TRUE; +} /****************************************************************************** * GetSecurityInfo [ADVAPI32.@] @@ -1971,6 +2162,16 @@ VOID WINAPI BuildTrusteeWithNameW(PTRUSTEEW pTrustee, LPWSTR name) pTrustee->ptstrName = name; } +BOOL WINAPI SetAclInformation( PACL pAcl, LPVOID pAclInformation, + DWORD nAclInformationLength, + ACL_INFORMATION_CLASS dwAclInformationClass ) +{ + FIXME("%p %p 0x%08lx 0x%08x - stub\n", pAcl, pAclInformation, + nAclInformationLength, dwAclInformationClass); + + return TRUE; +} + /****************************************************************************** * SetEntriesInAclA [ADVAPI32.@] */ @@ -2020,6 +2221,28 @@ DWORD WINAPI SetNamedSecurityInfoA(LPSTR pObjectName, return r; } +BOOL WINAPI SetPrivateObjectSecurity( SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR ModificationDescriptor, + PSECURITY_DESCRIPTOR* ObjectsSecurityDescriptor, + PGENERIC_MAPPING GenericMapping, + HANDLE Token ) +{ + FIXME("0x%08lx %p %p %p %p - stub\n", SecurityInformation, ModificationDescriptor, + ObjectsSecurityDescriptor, GenericMapping, Token); + + return TRUE; +} + +BOOL WINAPI SetSecurityDescriptorControl( PSECURITY_DESCRIPTOR pSecurityDescriptor, + SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest, + SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet ) +{ + FIXME("%p 0x%08x 0x%08x - stub\n", pSecurityDescriptor, ControlBitsOfInterest, + ControlBitsToSet); + + return TRUE; +} + BOOL WINAPI AreAllAccessesGranted( DWORD GrantedAccess, DWORD DesiredAccess ) { return RtlAreAllAccessesGranted( GrantedAccess, DesiredAccess ); diff --git a/dlls/advapi32/service.c b/dlls/advapi32/service.c index e874f676cdb..9511e335de3 100644 --- a/dlls/advapi32/service.c +++ b/dlls/advapi32/service.c @@ -1758,6 +1758,39 @@ QueryServiceConfigW( SC_HANDLE hService, return TRUE; } +BOOL WINAPI GetServiceKeyNameA( SC_HANDLE hSCManager, LPCSTR lpDisplayName, + LPSTR lpServiceName, LPDWORD lpcchBuffer ) +{ + FIXME("%p %s %p %p\n", hSCManager, debugstr_a(lpDisplayName), lpServiceName, lpcchBuffer); + + return FALSE; +} + +BOOL WINAPI GetServiceKeyNameW( SC_HANDLE hSCManager, LPCWSTR lpDisplayName, + LPWSTR lpServiceName, LPDWORD lpcchBuffer ) +{ + FIXME("%p %s %p %p\n", hSCManager, debugstr_w(lpDisplayName), lpServiceName, lpcchBuffer); + + return FALSE; +} + +BOOL WINAPI QueryServiceLockStatusA( SC_HANDLE hSCManager, + LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus, + DWORD cbBufSize, LPDWORD pcbBytesNeeded) +{ + FIXME("%p %p 0x%08lx %p - stub\n", hSCManager, lpLockStatus, cbBufSize, pcbBytesNeeded); + + return FALSE; +} + +BOOL WINAPI QueryServiceLockStatusW( SC_HANDLE hSCManager, + LPQUERY_SERVICE_LOCK_STATUSW lpLockStatus, + DWORD cbBufSize, LPDWORD pcbBytesNeeded) +{ + FIXME("%p %p 0x%08lx %p - stub\n", hSCManager, lpLockStatus, cbBufSize, pcbBytesNeeded); + + return FALSE; +} /****************************************************************************** * GetServiceDisplayNameA [ADVAPI32.@] @@ -1941,3 +1974,14 @@ BOOL WINAPI SetServiceObjectSecurity(SC_HANDLE hService, FIXME("%p %ld %p\n", hService, dwSecurityInformation, lpSecurityDescriptor); return TRUE; } + +BOOL WINAPI SetServiceBits( SERVICE_STATUS_HANDLE hServiceStatus, + DWORD dwServiceBits, + BOOL bSetBitsOn, + BOOL bUpdateImmediately) +{ + FIXME("0x%08lx 0x%08lx %x %x - stub\n", hServiceStatus, dwServiceBits, + bSetBitsOn, bUpdateImmediately); + + return TRUE; +} diff --git a/include/lmserver.h b/include/lmserver.h index 6725ec82ba4..b9b39857e85 100644 --- a/include/lmserver.h +++ b/include/lmserver.h @@ -39,6 +39,7 @@ typedef struct _SERVER_INFO_101 { NET_API_STATUS WINAPI NetServerEnum(LMCSTR servername, DWORD level, LPBYTE *bufptr, DWORD prefmaxlen, LPDWORD entriesread, LPDWORD totalentries, DWORD servertype, LMCSTR domain, LPDWORD resume_handle); +BOOL WINAPI SetServiceBits(SERVICE_STATUS_HANDLE,DWORD,BOOL,BOOL); #define SV_TYPE_WORKSTATION 0x00000001 #define SV_TYPE_SERVER 0x00000002 diff --git a/include/ntsecapi.h b/include/ntsecapi.h index 9358de1fcc9..2c3af393d0f 100644 --- a/include/ntsecapi.h +++ b/include/ntsecapi.h @@ -80,8 +80,7 @@ typedef STRING LSA_STRING, *PLSA_STRING; typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES; typedef PVOID LSA_HANDLE, *PLSA_HANDLE; - -NTSTATUS WINAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE); +typedef ULONG LSA_ENUMERATION_HANDLE, *PLSA_ENUMERATION_HANDLE; typedef enum { @@ -139,12 +138,22 @@ typedef struct PLSA_TRUST_INFORMATION Domains; } LSA_REFERENCED_DOMAIN_LIST, *PLSA_REFERENCED_DOMAIN_LIST; -NTSTATUS WINAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*); +typedef struct _LSA_TRANSLATED_SID +{ + SID_NAME_USE Use; + ULONG RelativeId; + LONG DomainIndex; +} LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID; +NTSTATUS WINAPI LsaClose(LSA_HANDLE); +NTSTATUS WINAPI LsaEnumerateTrustedDomains(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,PVOID*,ULONG,PULONG); NTSTATUS WINAPI LsaFreeMemory(PVOID); -NTSTATUS WINAPI LsaClose(IN LSA_HANDLE ObjectHandle); -ULONG WINAPI LsaNtStatusToWinError(NTSTATUS Status); - +NTSTATUS WINAPI LsaLookupNames(LSA_HANDLE,ULONG Count,PLSA_UNICODE_STRING,PLSA_REFERENCED_DOMAIN_LIST*, + PLSA_TRANSLATED_SID*); +ULONG WINAPI LsaNtStatusToWinError(NTSTATUS); +NTSTATUS WINAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE); +NTSTATUS WINAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*); +NTSTATUS WINAPI LsaSetInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID); #ifdef __cplusplus } /* extern "C" */ diff --git a/include/winbase.h b/include/winbase.h index 183d346d7d5..005ca0e11a9 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -1417,6 +1417,7 @@ DWORD WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*); DWORD WINAPI GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*); #define GetFullPathName WINELIB_NAME_AW(GetFullPathName) BOOL WINAPI GetHandleInformation(HANDLE,LPDWORD); +BOOL WINAPI GetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD); DWORD WINAPI GetLengthSid(PSID); VOID WINAPI GetLocalTime(LPSYSTEMTIME); DWORD WINAPI GetLogicalDrives(void); @@ -1431,6 +1432,7 @@ BOOL WINAPI GetNamedPipeInfo(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD); BOOL WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD); BOOL WINAPI GetOldestEventLogRecord(HANDLE,PDWORD); DWORD WINAPI GetPriorityClass(HANDLE); +BOOL WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD); BOOL WINAPI GetProcessAffinityMask(HANDLE,PDWORD,PDWORD); DWORD WINAPI GetProcessId(HANDLE); BOOL WINAPI GetProcessIoCounters(HANDLE,PIO_COUNTERS); @@ -1501,18 +1503,29 @@ BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD); BOOL WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE); BOOL WINAPI IsSystemResumeAutomatic(void); BOOL WINAPI IsTextUnicode(CONST LPVOID lpBuffer, int cb, LPINT lpi); +BOOL WINAPI IsTokenRestricted(HANDLE); BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR); BOOL WINAPI IsValidSid(PSID); BOOL WINAPI ImpersonateLoggedOnUser(HANDLE); +BOOL WINAPI ImpersonateNamedPipeClient(HANDLE); BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL); BOOL WINAPI IsProcessorFeaturePresent(DWORD); void WINAPI LeaveCriticalSection(CRITICAL_SECTION *lpCrit); +BOOL WINAPI LookupAccountNameA(LPCSTR,LPCSTR,PSID,LPDWORD,LPSTR,LPDWORD,PSID_NAME_USE); +BOOL WINAPI LookupAccountNameW(LPCWSTR,LPCWSTR,PSID,LPDWORD,LPWSTR,LPDWORD,PSID_NAME_USE); +#define LookupAccountName WINELIB_NAME_AW(LookupAccountName) BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPSTR,LPDWORD,LPSTR,LPDWORD,PSID_NAME_USE); BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPWSTR,LPDWORD,LPWSTR,LPDWORD,PSID_NAME_USE); #define LookupAccountSid WINELIB_NAME_AW(LookupAccountSid) BOOL WINAPI LocalFileTimeToFileTime(const FILETIME*,LPFILETIME); BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD); BOOL WINAPI LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED); +BOOL WINAPI LogonUserA(LPCSTR,LPCSTR,LPCSTR,DWORD,DWORD,PHANDLE); +BOOL WINAPI LogonUserW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,DWORD,PHANDLE); +#define LogonUser WINELIB_NAME_AW(LogonUser) +BOOL WINAPI LookupPrivilegeDisplayNameA(LPCSTR,LPCSTR,LPSTR,LPDWORD,LPDWORD); +BOOL WINAPI LookupPrivilegeDisplayNameW(LPCWSTR,LPCWSTR,LPWSTR,LPDWORD,LPDWORD); +#define LookupPrivilegeDisplayName WINELIB_NAME_AW(LookupPrivilegeDisplayName) BOOL WINAPI LookupPrivilegeNameA(LPCSTR,PLUID,LPSTR,LPDWORD); BOOL WINAPI LookupPrivilegeNameW(LPCWSTR,PLUID,LPWSTR,LPDWORD); #define LookupPrivilegeName WINELIB_NAME_AW(LookupPrivilegeName) @@ -1523,6 +1536,7 @@ BOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDW PACL,LPDWORD,PACL,LPDWORD,PSID,LPDWORD,PSID,LPDWORD); void WINAPI MakeCriticalSectionGlobal(CRITICAL_SECTION *lpCrit); BOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD); +VOID WINAPI MapGenericMask(PDWORD,PGENERIC_MAPPING); HMODULE WINAPI MapHModuleSL(WORD); WORD WINAPI MapHModuleLS(HMODULE); LPVOID WINAPI MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,SIZE_T); @@ -1535,6 +1549,17 @@ BOOL WINAPI MoveFileExW(LPCWSTR,LPCWSTR,DWORD); #define MoveFileEx WINELIB_NAME_AW(MoveFileEx) INT WINAPI MulDiv(INT,INT,INT); BOOL WINAPI NotifyChangeEventLog(HANDLE,HANDLE); +BOOL WINAPI ObjectCloseAuditAlarmA(LPCSTR,LPVOID,BOOL); +BOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR,LPVOID,BOOL); +#define ObjectCloseAuditAlarm WINELIB_NAME_AW(ObjectCloseAuditAlarm) +BOOL WINAPI ObjectOpenAuditAlarmA(LPCSTR,LPVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,HANDLE, + DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,LPBOOL); +BOOL WINAPI ObjectOpenAuditAlarmW(LPCWSTR,LPVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,HANDLE, + DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,LPBOOL); +#define ObjectOpenAuditAlarm WINELIB_NAME_AW(ObjectOpenAuditAlarm) +BOOL WINAPI ObjectPrivilegeAuditAlarmA(LPCSTR,LPVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL); +BOOL WINAPI ObjectPrivilegeAuditAlarmW(LPCWSTR,LPVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL); +#define ObjectPrivilegeAuditAlarm WINELIB_NAME_AW(ObjectPrivilegeAuditAlarm) HANDLE WINAPI OpenBackupEventLogA(LPCSTR,LPCSTR); HANDLE WINAPI OpenBackupEventLogW(LPCWSTR,LPCWSTR); #define OpenBackupEventLog WINELIB_NAME_AW(OpenBackupEventLog) @@ -1562,6 +1587,9 @@ HANDLE WINAPI OpenWaitableTimerW(DWORD,BOOL,LPCWSTR); #define OpenWaitableTimer WINELIB_NAME_AW(OpenWaitableTimer) BOOL WINAPI PeekNamedPipe(HANDLE,PVOID,DWORD,PDWORD,PDWORD,PDWORD); DWORD WINAPI PrepareTape(HANDLE,DWORD,BOOL); +BOOL WINAPI PrivilegedServiceAuditAlarmA(LPCSTR,LPCSTR,HANDLE,PPRIVILEGE_SET,BOOL); +BOOL WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR,LPCWSTR,HANDLE,PPRIVILEGE_SET,BOOL); +#define PrivilegedServiceAuditAlarm WINELIB_NAME_AW(PrivilegedServiceAuditAlarm) BOOL WINAPI PulseEvent(HANDLE); BOOL WINAPI PurgeComm(HANDLE,DWORD); BOOL WINAPI QueryActCtxW(DWORD,HANDLE,PVOID,ULONG,PVOID,SIZE_T,SIZE_T *); @@ -1596,6 +1624,7 @@ BOOL WINAPI RevertToSelf(void); DWORD WINAPI SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*); DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*); #define SearchPath WINELIB_NAME_AW(SearchPath) +BOOL WINAPI SetAclInformation(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS); BOOL WINAPI SetCommConfig(HANDLE,LPCOMMCONFIG,DWORD); BOOL WINAPI SetCommBreak(HANDLE); BOOL WINAPI SetCommMask(HANDLE,DWORD); @@ -1630,10 +1659,14 @@ BOOL WINAPI SetLocalTime(const SYSTEMTIME*); BOOL WINAPI SetMailslotInfo(HANDLE,DWORD); BOOL WINAPI SetNamedPipeHandleState(HANDLE,LPDWORD,LPDWORD,LPDWORD); BOOL WINAPI SetPriorityClass(HANDLE,DWORD); +BOOL WINAPI SetPrivateObjectSecurity(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR, + PSECURITY_DESCRIPTOR*,PGENERIC_MAPPING,HANDLE); BOOL WINAPI SetProcessAffinityMask(HANDLE,DWORD_PTR); BOOL WINAPI SetProcessPriorityBoost(HANDLE,BOOL); BOOL WINAPI SetProcessShutdownParameters(DWORD,DWORD); BOOL WINAPI SetProcessWorkingSetSize(HANDLE,SIZE_T,SIZE_T); +BOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL, + SECURITY_DESCRIPTOR_CONTROL); BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL); BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,BOOL); BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,BOOL); diff --git a/include/winsvc.h b/include/winsvc.h index 96d65332df7..1f94400582f 100644 --- a/include/winsvc.h +++ b/include/winsvc.h @@ -240,6 +240,22 @@ typedef struct _SERVICE_FAILURE_ACTIONSW { DECL_WINELIB_TYPE_AW(SERVICE_FAILURE_ACTIONS) DECL_WINELIB_TYPE_AW(LPSERVICE_FAILURE_ACTIONS) +typedef struct _QUERY_SERVICE_LOCK_STATUSA +{ + DWORD fIsLocked; + LPSTR lpLockOwner; + DWORD dwLockDuration; +} QUERY_SERVICE_LOCK_STATUSA, *LPQUERY_SERVICE_LOCK_STATUSA; + +typedef struct _QUERY_SERVICE_LOCK_STATUSW +{ + DWORD fIsLocked; + LPWSTR lpLockOwner; + DWORD dwLockDuration; +} QUERY_SERVICE_LOCK_STATUSW, *LPQUERY_SERVICE_LOCK_STATUSW; + +DECL_WINELIB_TYPE_AW(QUERY_SERVICE_LOCK_STATUS) + /* Service control handler function prototype */ typedef VOID (WINAPI *LPHANDLER_FUNCTION)(DWORD); @@ -269,6 +285,9 @@ BOOL WINAPI EnumServicesStatusA(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STAT BOOL WINAPI EnumServicesStatusW(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSW, DWORD,LPDWORD,LPDWORD,LPDWORD); #define EnumServicesStatus WINELIB_NAME_AW(EnumServicesStatus) +BOOL WINAPI GetServiceKeyNameA(SC_HANDLE,LPCSTR,LPSTR,LPDWORD); +BOOL WINAPI GetServiceKeyNameW(SC_HANDLE,LPCWSTR,LPWSTR,LPDWORD); +#define GetServiceKeyName WINELIB_NAME_AW(GetServiceKeyName) SC_HANDLE WINAPI OpenSCManagerA(LPCSTR,LPCSTR,DWORD); SC_HANDLE WINAPI OpenSCManagerW(LPCWSTR,LPCWSTR,DWORD); #define OpenSCManager WINELIB_NAME_AW(OpenSCManager) @@ -293,6 +312,9 @@ BOOL WINAPI QueryServiceStatusEx(SC_HANDLE,SC_STATUS_TYPE,LPBYTE,DWORD,LP BOOL WINAPI QueryServiceConfigA(SC_HANDLE,LPQUERY_SERVICE_CONFIGA,DWORD,LPDWORD); BOOL WINAPI QueryServiceConfigW(SC_HANDLE,LPQUERY_SERVICE_CONFIGW,DWORD,LPDWORD); #define QueryServiceConfig WINELIB_NAME_AW(QueryServiceConfig) +BOOL WINAPI QueryServiceLockStatusA(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSA,DWORD,LPDWORD); +BOOL WINAPI QueryServiceLockStatusW(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSW,DWORD,LPDWORD); +#define QueryServiceLockStatus WINELIB_NAME_AW(QueryServiceLockStatus) #ifdef __cplusplus } /* extern "C" */