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.

diff --git a/include/lmserver.h b/include/lmserver.h
index 6725ec8..b9b3985 100644
--- a/include/lmserver.h
+++ b/include/lmserver.h
@@ -39,6 +39,7 @@
 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 9358de1..2c3af39 100644
--- a/include/ntsecapi.h
+++ b/include/ntsecapi.h
@@ -80,8 +80,7 @@
 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 @@
     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 183d346..005ca0e 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -1417,6 +1417,7 @@
 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 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 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 @@
                                   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 @@
 #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 @@
 #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 @@
 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 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 96d6533..1f94400 100644
--- a/include/winsvc.h
+++ b/include/winsvc.h
@@ -240,6 +240,22 @@
 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 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 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" */