Commit Graph

65 Commits

Author SHA1 Message Date
Alexandre Julliard e55101715c kernel32: Implement the LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE flag.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-01 19:25:57 +01:00
Alexandre Julliard e1d8c176ef kernel32: Implement the LOAD_LIBRARY_AS_IMAGE_RESOURCE flag.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-01 19:25:57 +01:00
Huw Davies 1e945155f9 kernel32: Save xmm0 - 3 to work around a Delphi bug on x86_64.
When delay loading a symbol, Delphi saves rcx, rdx, r8 and r9 to the
stack.  It then calls GetProcAddress(), pops the saved registers and
calls the function.  This works fine if all of the parameters are
ints.  However, since it does not save xmm0 - 3, it relies on
GetProcAddress() preserving these registers if the function takes
floating point parameters.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-07 19:38:29 +01:00
Akihiro Sagawa 844ae22fcf kernel32: Return the list of module handles even if the last argument is null.
Touhou Shinpiroku relies on this behaviour.

Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-19 19:46:19 +01:00
Alexandre Julliard 21149e6331 kernel32: Properly detect ELF binaries that are position independent executables.
Based on a patch by Sebastian Lackner.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-18 11:19:34 +01:00
Martin Payne e562d4de81 kernel32: Don't report valid non-Win16 NE executables (e.g. OS/2) as broken.
Signed-off-by: Martin Payne <development@martinpayne.me.uk>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-13 20:14:14 +01:00
Alexandre Julliard 1d49a57e77 kernel32: Also set the preloader range for 64-bit binaries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-23 11:45:25 +02:00
Alexandre Julliard a8d291c0c0 kernel32: Implement safe search mode for SearchPath.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-29 15:51:27 +02:00
Alexandre Julliard 3b399bbbf8 kernel32: Implement LOAD_LIBRARY_SEARCH_* flags.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-29 11:30:27 +02:00
Alexandre Julliard 8abbfbbe24 kernel32: Add helper functions for building the load path.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-29 09:33:07 +02:00
Alexandre Julliard 12167d2e36 kernel32: Implement AddDllDirectory and RemoveDllDirectory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-29 08:16:52 +02:00
Alexandre Julliard 8d82ab4ae7 kernel32: Add support for LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE flag.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-28 14:19:47 +02:00
Alexandre Julliard e99811aee2 kernel32: Implement SetDefaultDllDirectories.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-28 13:29:22 +02:00
Alexandre Julliard 66e302f80b kernel32: Implement safe dll search mode.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-28 12:47:34 +02:00
Michael Müller bd17022c90 kernel32: Set ERROR_DLL_NOT_FOUND as error code in load_library for Win 9x compatibility.
Newer operating systems return ERROR_MOD_NOT_FOUND.

Signed-off-by: Michael Müller <michael@fds-team.de>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-31 15:57:32 +09:00
Olivier F. R. Dierick c3f95eddc1 kernel32: Fail gracefully in K32EnumProcessModules with NULL pointer. 2015-07-06 17:09:49 +09:00
Charles Davis 2ace215b9a kernel32: Recognize 64-bit Mach-O modules, too. 2015-01-23 11:10:57 +01:00
Sebastian Lackner cacc9ae888 psapi: Implement semi-stub for K32EnumProcessModulesEx. 2014-12-16 17:25:36 +01:00
Alexandre Julliard ea1689e7b0 kernel32: Add detection of fake dlls when determining a binary type. 2014-08-22 12:44:24 +02:00
Nikolay Sivov 5a8d73283c ntdll: Fix LdrLockLoaderLock()/LdrUnlockLoaderLock() on 64bit. 2014-06-11 13:05:39 +02:00
Nikolay Sivov a2bcfa28d4 kernel32: Add more LoadLibraryEx() flags defines and mark them as unsupported. 2013-11-25 15:15:52 +01:00
Alexandre Julliard f2c54dba01 kernel32: Determine the module architecture for all binary types. 2013-11-22 12:25:30 +01:00
Nikolay Sivov 9a6567d1a6 kernel32: Added support for GET_MODULE_HANDLE_EX_FLAG_PIN. 2013-10-15 14:28:20 +02:00
Stefan Leichter c0e72bb362 kernel32: Let K32EnumProcessModules fail if the last parameter is NULL. 2012-06-22 14:09:51 +02:00
Alexandre Julliard fd11023e4b kernel32: Fix another overflow in GetModuleFileNameExW. 2012-05-01 14:43:46 +02:00
Alexandre Julliard d08f34cd8e kernel32: Fix buffer overflows in K32GetModuleFileNameExA/W. 2012-04-30 14:27:13 +02:00
Hans Leidekker 31ffa54773 kernel32: GetModuleHandleEx already clears the module handle on failure. 2012-04-05 14:51:33 +02:00
Hans Leidekker f96c7278e7 kernel32: Clear the module handle on failure in GetModuleHandleEx. 2012-04-05 14:51:33 +02:00
Hans Leidekker e8a95bf683 kernel32: Return failure from GetModuleHandleEx if the module handle pointer is NULL. 2012-04-05 14:51:33 +02:00
André Hentschel 6d66de583f kernel32: Make GetModuleHandleA hotpatchable. 2012-03-08 18:55:18 +01:00
Francois Gouget 8e67930bd7 kernel32: Reset LastError if GetModuleFileName() succeeds. 2011-10-03 16:56:27 -05:00
Jacek Caban 0d0f2fa4a9 kernel32: Moved GetModuleInformation implementation to kernel32. 2011-05-12 14:29:21 +02:00
Jacek Caban 9bbf3f9075 kernel32: Moved GetModuleFileNameEx[AW] to kernel32. 2011-05-12 14:29:14 +02:00
Jacek Caban e6dd213d52 kernel32: Moved GetModuleBaseName[AW] implementation to kernel32. 2011-05-12 14:29:07 +02:00
Jacek Caban 8379893f96 kernel32: Moved K32EnumProcessModules to module.c. 2011-05-12 14:28:58 +02:00
Detlef Riekenberg 27d31c7652 kernel32: Don't mask when printing unsupported flags in load_library. 2011-01-24 12:35:02 +01:00
André Hentschel 089d792498 kernel32: Update function docs for GetBinayType. 2010-10-28 11:38:01 +02:00
Luca Bennati 9941f846e8 kernel32: Remove dead assignments. 2010-09-20 13:02:11 +02:00
Mariusz Pluciński dfb88608e3 kernel32: New flags added to LoadLibraryEx. 2010-09-13 14:46:20 -05:00
Detlef Riekenberg 69326aa246 kernel32: Move a 16 bit related comment to krnl386. 2010-05-14 18:03:03 +02:00
Michael Stefaniuc 3f37e33497 kernel32: Avoid using HIWORD on types that are 64bit on Win64. 2010-02-10 14:33:52 +01:00
Jason Edmeades 99a0376a4f kernel32: Return error on second attempt to free a module. 2010-01-18 14:26:16 +01:00
Michael Stefaniuc 4f60b6bf91 kernel32: Add missing stdarg.h includes. 2009-12-31 12:12:17 +01:00
Alexandre Julliard 475b7d226c kernel32: Make krnl386.exe into a stand-alone 16-bit module. 2009-12-30 17:36:14 +01:00
Alexandre Julliard 8268ed9783 kernel32: Do not include 16-bit headers in 32-bit files. 2009-12-30 16:21:56 +01:00
Alexandre Julliard 28f13f83a6 kernel32: Add a structure to store all the information about an executable. 2009-10-28 11:03:04 +01:00
Alexandre Julliard 11b0b0658d kernel32: Return the appropriate binary type for 64-bit PE files. 2009-10-21 18:02:30 +02:00
Stefan Dösinger 282cc71aed kernel32: Make some functions hookable. 2009-10-14 12:21:05 +02:00
Alexandre Julliard 806deab0b7 kernel32: Fix a couple of compiler warnings on 64-bit. 2009-10-08 11:12:21 +02:00
Alexandre Julliard 4496f281d8 kernel32: Move the 16-bit PE module functions to kernel16.c. 2009-10-08 11:12:20 +02:00