[PATCH 1/2] api-ms-win-downlevel-advapi32-l1-1-0: Add dll

Detlef Riekenberg wine.dev at web.de
Mon Dec 17 04:37:45 CST 2012

Needed for ie10

The api-ms-* dlls are really small on Windows, which seems to
be supported by some magic in the dll loader.

For Wine, i use just forward to our current implementation.

By by ... Detlef
 .../Makefile.in                                    |    4 +
 .../api-ms-win-downlevel-advapi32-l1-1-0.spec      |  145 ++++++++++++++++++++
 tools/make_specfiles                               |    4 +
 3 files changed, 153 insertions(+), 0 deletions(-)
 create mode 100644 dlls/api-ms-win-downlevel-advapi32-l1-1-0/Makefile.in
 create mode 100644 dlls/api-ms-win-downlevel-advapi32-l1-1-0/api-ms-win-downlevel-advapi32-l1-1-0.spec

diff --git a/dlls/api-ms-win-downlevel-advapi32-l1-1-0/Makefile.in b/dlls/api-ms-win-downlevel-advapi32-l1-1-0/Makefile.in
new file mode 100644
index 0000000..59ad6a6
--- /dev/null
+++ b/dlls/api-ms-win-downlevel-advapi32-l1-1-0/Makefile.in
@@ -0,0 +1,4 @@
+MODULE    = api-ms-win-downlevel-advapi32-l1-1-0.dll
diff --git a/dlls/api-ms-win-downlevel-advapi32-l1-1-0/api-ms-win-downlevel-advapi32-l1-1-0.spec b/dlls/api-ms-win-downlevel-advapi32-l1-1-0/api-ms-win-downlevel-advapi32-l1-1-0.spec
new file mode 100644
index 0000000..83dc129
--- /dev/null
+++ b/dlls/api-ms-win-downlevel-advapi32-l1-1-0/api-ms-win-downlevel-advapi32-l1-1-0.spec
@@ -0,0 +1,145 @@
+@ stdcall AccessCheck(ptr long long ptr ptr ptr ptr ptr) advapi32.AccessCheck
+@ stdcall AccessCheckAndAuditAlarmW(wstr ptr wstr wstr ptr long ptr long ptr ptr ptr) advapi32.AccessCheckAndAuditAlarmW
+@ stdcall AccessCheckByType(ptr ptr long long ptr long ptr ptr ptr ptr ptr) advapi32.AccessCheckByType
+@ stub AccessCheckByTypeAndAuditAlarmW
+@ stub AccessCheckByTypeResultList
+@ stub AccessCheckByTypeResultListAndAuditAlarmByHandleW
+@ stub AccessCheckByTypeResultListAndAuditAlarmW
+@ stdcall AddAccessAllowedAce(ptr long long ptr) advapi32.AddAccessAllowedAce
+@ stdcall AddAccessAllowedAceEx(ptr long long long ptr) advapi32.AddAccessAllowedAceEx
+@ stub AddAccessAllowedObjectAce
+@ stdcall AddAccessDeniedAce(ptr long long ptr) advapi32.AddAccessDeniedAce
+@ stdcall AddAccessDeniedAceEx(ptr long long long ptr) advapi32.AddAccessDeniedAceEx
+@ stub AddAccessDeniedObjectAce
+@ stdcall AddAce(ptr long long ptr long) advapi32.AddAce
+@ stdcall AddAuditAccessAce(ptr long long ptr long long) advapi32.AddAuditAccessAce
+@ stdcall AddAuditAccessAceEx(ptr long long long ptr long long) advapi32.AddAuditAccessAceEx
+@ stub AddAuditAccessObjectAce
+@ stub AddMandatoryAce
+@ stdcall AdjustTokenGroups(long long ptr long ptr ptr) advapi32.AdjustTokenGroups
+@ stdcall AdjustTokenPrivileges(long long ptr long ptr ptr) advapi32.AdjustTokenPrivileges
+@ stdcall AllocateAndInitializeSid(ptr long long long long long long long long long ptr) advapi32.AllocateAndInitializeSid
+@ stdcall AllocateLocallyUniqueId(ptr) advapi32.AllocateLocallyUniqueId
+@ stdcall AreAllAccessesGranted(long long) advapi32.AreAllAccessesGranted
+@ stdcall AreAnyAccessesGranted(long long) advapi32.AreAnyAccessesGranted
+@ stdcall CheckTokenMembership(long ptr ptr) advapi32.CheckTokenMembership
+@ stub ConvertToAutoInheritPrivateObjecSecurity
+@ stdcall CopySid(long ptr ptr) advapi32.CopySid
+@ stdcall CreatePrivateObjectSecurity(ptr ptr ptr long long ptr) advapi32.CreatePrivateObjectSecurity
+@ stub CreatePrivateObjectSecurityEx
+@ stub CreatePrivateObjectSecurityWithMultipleInheritance
+@ stdcall CreateProcessAsUserW(long wstr wstr ptr ptr long long ptr wstr ptr ptr) advapi32.CreateProcessAsUserW
+@ stdcall CreateRestrictedToken(long long long ptr long ptr long ptr ptr) advapi32.CreateRestrictedToken
+@ stdcall CreateWellKnownSid(long ptr ptr ptr) advapi32.CreateWellKnownSid
+@ stdcall DeleteAce(ptr long) advapi32.DeleteAce
+@ stdcall DestroyPrivateObjectSecurity(ptr) advapi32.DestroyPrivateObjectSecurity
+@ stdcall DuplicateToken(long long ptr) advapi32.DuplicateToken
+@ stdcall DuplicateTokenEx(long long ptr long long ptr) advapi32.DuplicateTokenEx
+@ stub EqualDomainSid
+@ stdcall EqualPrefixSid(ptr ptr) advapi32.EqualPrefixSid
+@ stdcall EqualSid(ptr ptr) advapi32.EqualSid
+@ stub EventActivityIdControl
+@ stdcall EventEnabled(int64 ptr) advapi32.EventEnabled
+@ stub EventProviderEnabled
+@ stdcall EventRegister(ptr ptr ptr ptr) advapi32.EventRegister
+@ stdcall EventUnregister(int64) advapi32.EventUnregister
+@ stdcall EventWrite(int64 ptr long ptr) advapi32.EventWrite
+@ stub EventWriteString
+@ stub EventWriteTransfer
+@ stdcall FindFirstFreeAce(ptr ptr) advapi32.FindFirstFreeAce
+@ stdcall FreeSid(ptr) advapi32.FreeSid
+@ stdcall GetAce(ptr long ptr) advapi32.GetAce
+@ stdcall GetAclInformation(ptr ptr long long) advapi32.GetAclInformation
+@ stdcall GetFileSecurityW(wstr long ptr long ptr) advapi32.GetFileSecurityW
+@ stdcall GetKernelObjectSecurity(long long ptr long ptr) advapi32.GetKernelObjectSecurity
+@ stdcall GetLengthSid(ptr) advapi32.GetLengthSid
+@ stdcall GetPrivateObjectSecurity(ptr long ptr long ptr) advapi32.GetPrivateObjectSecurity
+@ stdcall GetSecurityDescriptorControl(ptr ptr ptr) advapi32.GetSecurityDescriptorControl
+@ stdcall GetSecurityDescriptorDacl(ptr ptr ptr ptr) advapi32.GetSecurityDescriptorDacl
+@ stdcall GetSecurityDescriptorGroup(ptr ptr ptr) advapi32.GetSecurityDescriptorGroup
+@ stdcall GetSecurityDescriptorLength(ptr) advapi32.GetSecurityDescriptorLength
+@ stdcall GetSecurityDescriptorOwner(ptr ptr ptr) advapi32.GetSecurityDescriptorOwner
+@ stub GetSecurityDescriptorRMControl
+@ stdcall GetSecurityDescriptorSacl(ptr ptr ptr ptr) advapi32.GetSecurityDescriptorSacl
+@ stdcall GetSidIdentifierAuthority(ptr) advapi32.GetSidIdentifierAuthority
+@ stdcall GetSidLengthRequired(long) advapi32.GetSidLengthRequired
+@ stdcall GetSidSubAuthority(ptr long) advapi32.GetSidSubAuthority
+@ stdcall GetSidSubAuthorityCount(ptr) advapi32.GetSidSubAuthorityCount
+@ stdcall GetTokenInformation(long long ptr long ptr) advapi32.GetTokenInformation
+@ stub GetTraceEnableFlags
+@ stub GetTraceEnableLevel
+@ stub GetTraceLoggerHandle
+@ stdcall InitializeAcl(ptr long long) advapi32.InitializeAcl
+@ stdcall InitializeSecurityDescriptor(ptr long) advapi32.InitializeSecurityDescriptor
+@ stdcall InitializeSid(ptr ptr long) advapi32.InitializeSid
+@ stdcall IsTokenRestricted(long) advapi32.IsTokenRestricted
+@ stdcall IsValidAcl(ptr) advapi32.IsValidAcl
+@ stdcall IsValidSecurityDescriptor(ptr) advapi32.IsValidSecurityDescriptor
+@ stdcall IsValidSid(ptr) advapi32.IsValidSid
+@ stdcall MakeAbsoluteSD(ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) advapi32.MakeAbsoluteSD
+@ stdcall MakeSelfRelativeSD(ptr ptr ptr) advapi32.MakeSelfRelativeSD
+@ stdcall OpenProcessToken(long long ptr) advapi32.OpenProcessToken
+@ stdcall OpenThreadToken(long long long ptr) advapi32.OpenThreadToken
+@ stdcall PrivilegeCheck(ptr ptr ptr) advapi32.PrivilegeCheck
+@ stdcall PrivilegedServiceAuditAlarmW(wstr wstr long ptr long) advapi32.PrivilegedServiceAuditAlarmW
+@ stub QuerySecurityAccessMask
+@ stdcall RegCloseKey(long) advapi32.RegCloseKey
+@ stub RegCopyTreeW
+@ stdcall RegCreateKeyExA(long str long ptr long long ptr ptr ptr) advapi32.RegCreateKeyExA
+@ stdcall RegCreateKeyExW(long wstr long ptr long long ptr ptr ptr) advapi32.RegCreateKeyExW
+@ stdcall RegDeleteKeyExA(long str long long) advapi32.RegDeleteKeyExA
+@ stdcall RegDeleteKeyExW(long wstr long long) advapi32.RegDeleteKeyExW
+@ stdcall RegDeleteTreeA(long str) advapi32.RegDeleteTreeA
+@ stdcall RegDeleteTreeW(long wstr) advapi32.RegDeleteTreeW
+@ stdcall RegDeleteValueA(long str) advapi32.RegDeleteValueA
+@ stdcall RegDeleteValueW(long wstr) advapi32.RegDeleteValueW
+@ stub RegDisablePredefinedCacheEx
+@ stdcall RegEnumKeyExA(long long ptr ptr ptr ptr ptr ptr) advapi32.RegEnumKeyExA
+@ stdcall RegEnumKeyExW(long long ptr ptr ptr ptr ptr ptr) advapi32.RegEnumKeyExW
+@ stdcall RegEnumValueA(long long ptr ptr ptr ptr ptr ptr) advapi32.RegEnumValueA
+@ stdcall RegEnumValueW(long long ptr ptr ptr ptr ptr ptr) advapi32.RegEnumValueW
+@ stdcall RegFlushKey(long) advapi32.RegFlushKey
+@ stdcall RegGetKeySecurity(long long ptr ptr) advapi32.RegGetKeySecurity
+@ stdcall RegGetValueA(long str str long ptr ptr ptr) advapi32.RegGetValueA
+@ stdcall RegGetValueW(long wstr wstr long ptr ptr ptr) advapi32.RegGetValueW
+@ stdcall RegisterTraceGuidsW(ptr ptr ptr long ptr wstr wstr ptr) advapi32.RegisterTraceGuidsW
+@ stub RegLoadAppKeyA
+@ stub RegLoadAppKeyW
+@ stdcall RegLoadKeyA(long str str) advapi32.RegLoadKeyA
+@ stdcall RegLoadKeyW(long wstr wstr) advapi32.RegLoadKeyW
+@ stdcall RegLoadMUIStringA(long str str long ptr long str) advapi32.RegLoadMUIStringA
+@ stdcall RegLoadMUIStringW(long wstr wstr long ptr long wstr) advapi32.RegLoadMUIStringW
+@ stdcall RegNotifyChangeKeyValue(long long long long long) advapi32.RegNotifyChangeKeyValue
+@ stdcall RegOpenCurrentUser(long ptr) advapi32.RegOpenCurrentUser
+@ stdcall RegOpenKeyExA(long str long long ptr) advapi32.RegOpenKeyExA
+@ stdcall RegOpenKeyExW(long wstr long long ptr) advapi32.RegOpenKeyExW
+@ stdcall RegOpenUserClassesRoot(ptr long long ptr) advapi32.RegOpenUserClassesRoot
+@ stdcall RegQueryInfoKeyA(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) advapi32.RegQueryInfoKeyA
+@ stdcall RegQueryInfoKeyW(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) advapi32.RegQueryInfoKeyW
+@ stdcall RegQueryValueExA(long str ptr ptr ptr ptr) advapi32.RegQueryValueExA
+@ stdcall RegQueryValueExW(long wstr ptr ptr ptr ptr) advapi32.RegQueryValueExW
+@ stdcall RegRestoreKeyA(long str long) advapi32.RegRestoreKeyA
+@ stdcall RegRestoreKeyW(long wstr long) advapi32.RegRestoreKeyW
+@ stub RegSaveKeyExA
+@ stub RegSaveKeyExW
+@ stdcall RegSetKeySecurity(long long ptr) advapi32.RegSetKeySecurity
+@ stdcall RegSetValueExA(long str long long ptr long) advapi32.RegSetValueExA
+@ stdcall RegSetValueExW(long wstr long long ptr long) advapi32.RegSetValueExW
+@ stdcall RegUnLoadKeyA(long str) advapi32.RegUnLoadKeyA
+@ stdcall RegUnLoadKeyW(long wstr) advapi32.RegUnLoadKeyW
+@ stdcall RevertToSelf() advapi32.RevertToSelf
+@ stdcall SetAclInformation(ptr ptr long long) advapi32.SetAclInformation
+@ stdcall SetFileSecurityW(wstr long ptr) advapi32.SetFileSecurityW
+@ stdcall SetKernelObjectSecurity(long long ptr) advapi32.SetKernelObjectSecurity
+@ stub SetSecurityAccessMask
+@ stdcall SetSecurityDescriptorControl(ptr long long) advapi32.SetSecurityDescriptorControl
+@ stdcall SetSecurityDescriptorDacl(ptr long ptr long) advapi32.SetSecurityDescriptorDacl
+@ stdcall SetSecurityDescriptorGroup(ptr ptr long) advapi32.SetSecurityDescriptorGroup
+@ stdcall SetSecurityDescriptorOwner(ptr ptr long) advapi32.SetSecurityDescriptorOwner
+@ stub SetSecurityDescriptorRMControl
+@ stdcall SetSecurityDescriptorSacl(ptr long ptr long) advapi32.SetSecurityDescriptorSacl
+@ stdcall SetTokenInformation(long long ptr long) advapi32.SetTokenInformation
+@ stdcall TraceEvent(int64 ptr) advapi32.TraceEvent
+@ varargs TraceMessage(int64 long ptr long) advapi32.TraceMessage
+@ stdcall TraceMessageVa(int64 long ptr long ptr) advapi32.TraceMessageVa
+@ stdcall UnregisterTraceGuids(int64) advapi32.UnregisterTraceGuids
diff --git a/tools/make_specfiles b/tools/make_specfiles
index 93f5ff1..a507e86 100755
--- a/tools/make_specfiles
+++ b/tools/make_specfiles
@@ -116,6 +116,10 @@ my @dll_groups =
+ [
+  "advapi32",
+  "api-ms-win-downlevel-advapi32-l1-1-0",
+ ],
 my $update_flags = 0;

More information about the wine-patches mailing list