Alexandre Julliard : kernel32: Move delay-load functions to kernelbase.

Alexandre Julliard julliard at winehq.org
Thu Sep 26 15:51:19 CDT 2019


Module: wine
Branch: master
Commit: 0f5538b9e349fe7b5924b8c0b84ca8a917962701
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=0f5538b9e349fe7b5924b8c0b84ca8a917962701

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Sep 26 10:33:54 2019 +0200

kernel32: Move delay-load functions to kernelbase.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/kernel32.spec     |  2 +-
 dlls/kernel32/module.c          | 17 -----------------
 dlls/kernelbase/kernelbase.spec |  4 ++--
 dlls/kernelbase/loader.c        | 18 ++++++++++++++++++
 4 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 4196582739..24a33e7600 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -356,7 +356,7 @@
 @ stdcall DecodeSystemPointer(ptr) ntdll.RtlDecodeSystemPointer
 @ stdcall DefineDosDeviceA(long str str)
 @ stdcall DefineDosDeviceW(long wstr wstr)
-@ stdcall DelayLoadFailureHook(str str)
+@ stdcall -import DelayLoadFailureHook(str str)
 @ stdcall DeleteAtom(long)
 # @ stub DeleteBoundaryDescriptor
 @ stdcall DeleteCriticalSection(ptr) ntdll.RtlDeleteCriticalSection
diff --git a/dlls/kernel32/module.c b/dlls/kernel32/module.c
index 24fb9e33f5..ad6956d1ce 100644
--- a/dlls/kernel32/module.c
+++ b/dlls/kernel32/module.c
@@ -1018,23 +1018,6 @@ FARPROC WINAPI GetProcAddress( HMODULE hModule, LPCSTR function )
     return get_proc_address_wrapper( hModule, function );
 }
 
-/***********************************************************************
- *           DelayLoadFailureHook  (KERNEL32.@)
- */
-FARPROC WINAPI DelayLoadFailureHook( LPCSTR name, LPCSTR function )
-{
-    ULONG_PTR args[2];
-
-    if ((ULONG_PTR)function >> 16)
-        ERR( "failed to delay load %s.%s\n", name, function );
-    else
-        ERR( "failed to delay load %s.%u\n", name, LOWORD(function) );
-    args[0] = (ULONG_PTR)name;
-    args[1] = (ULONG_PTR)function;
-    RaiseException( EXCEPTION_WINE_STUB, EH_NONCONTINUABLE, 2, args );
-    return NULL;
-}
-
 typedef struct _PEB32
 {
     BOOLEAN InheritedAddressSpace;
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index ac2bfe55da..c4fd8511b3 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -244,7 +244,7 @@
 # @ stub DecodeRemotePointer
 @ stdcall DecodeSystemPointer(ptr) ntdll.RtlDecodeSystemPointer
 @ stdcall DefineDosDeviceW(long wstr wstr) kernel32.DefineDosDeviceW
-@ stdcall DelayLoadFailureHook(str str) kernel32.DelayLoadFailureHook
+@ stdcall DelayLoadFailureHook(str str)
 # @ stub DelayLoadFailureHookLookup
 @ stdcall DeleteAce(ptr long)
 # @ stub DeleteBoundaryDescriptor
@@ -1344,7 +1344,7 @@
 @ stdcall ResetEvent(long)
 # @ stub ResetState
 @ stdcall ResetWriteWatch(ptr long)
-@ stdcall ResolveDelayLoadedAPI(ptr ptr ptr ptr ptr long) kernel32.ResolveDelayLoadedAPI
+@ stdcall -import ResolveDelayLoadedAPI(ptr ptr ptr ptr ptr long) LdrResolveDelayLoadedAPI
 # @ stub ResolveDelayLoadsFromDll
 @ stdcall ResolveLocaleName(wstr ptr long)
 @ stdcall RestoreLastError(long) ntdll.RtlRestoreLastWin32Error
diff --git a/dlls/kernelbase/loader.c b/dlls/kernelbase/loader.c
index 34c8add910..9d0486d8a6 100644
--- a/dlls/kernelbase/loader.c
+++ b/dlls/kernelbase/loader.c
@@ -42,6 +42,24 @@ WINE_DEFAULT_DEBUG_CHANNEL(module);
  ***********************************************************************/
 
 
+/***********************************************************************
+ *	DelayLoadFailureHook   (kernelbase.@)
+ */
+FARPROC WINAPI DECLSPEC_HOTPATCH DelayLoadFailureHook( LPCSTR name, LPCSTR function )
+{
+    ULONG_PTR args[2];
+
+    if ((ULONG_PTR)function >> 16)
+        ERR( "failed to delay load %s.%s\n", name, function );
+    else
+        ERR( "failed to delay load %s.%u\n", name, LOWORD(function) );
+    args[0] = (ULONG_PTR)name;
+    args[1] = (ULONG_PTR)function;
+    RaiseException( EXCEPTION_WINE_STUB, EH_NONCONTINUABLE, 2, args );
+    return NULL;
+}
+
+
 /****************************************************************************
  *	DisableThreadLibraryCalls   (kernelbase.@)
  */




More information about the wine-cvs mailing list