Commit Graph

561 Commits

Author SHA1 Message Date
Alexandre Julliard f93713b157 ntdll: Support loading builtins from the architecture-specific PE directory.
Based on a patch by Jacek Caban.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-26 21:34:02 +02:00
Alexandre Julliard aaa501fe93 ntdll: Fix buffer allocation size in get_env_var().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-21 17:08:06 +02:00
Alexandre Julliard 1cf2ae1907 ntdll: Support a full path name in the loadFrom dll redirection entry.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50978
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-21 08:55:38 +02:00
Alexandre Julliard 55d98c572c ntdll: Use the loadFrom directory to load dlls from the activation context.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50978
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-19 15:39:55 +02:00
Alexandre Julliard 8ffb9b31d0 ntdll: Initialize version and session id on the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-13 13:05:29 +02:00
Alexandre Julliard 277a5728da ntdll: Don't try to open the file in the prefix for 16-bit builtins.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-08 18:16:52 +02:00
Alexandre Julliard 446f7e3aa8 ntdll: Add a WINEBOOTSTRAPMODE environment variable to allow loading non-existent builtins.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50905
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-08 18:16:00 +02:00
Alexandre Julliard 6d5a6c3466 ntdll: Avoid closing a handle twice.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-06 22:46:12 +02:00
Alexandre Julliard beff5c56cd ntdll: Move the PEB initialization to LdrInitializeThunk().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-05 12:08:09 +02:00
Alexandre Julliard 04762b3576 ntdll: Move the global options initialization to LdrInitializeThunk().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-05 12:08:09 +02:00
Alexandre Julliard 4f594e1552 ntdll: Move Wow64 initialization to LdrInitializeThunk().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-05 12:08:09 +02:00
Alexandre Julliard 7929b21ede ntdll: Define NtCurrentTeb64() on 64-bit to avoid some #ifdefs.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-01 12:25:21 +02:00
Alexandre Julliard e6ed943028 ntdll: Move creation of the initial modules to LdrInitializeThunk().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-01 12:01:43 +02:00
Alexandre Julliard c00c62bbfd ntdll: Create the initial stack on the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-01 11:25:48 +02:00
Alexandre Julliard 2a8a4cbbe6 ntdll: Move kernel32 loading into LdrInitializeThunk().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-31 21:13:45 +02:00
Alexandre Julliard 0bbbf016b1 ntdll: Return system dir path for PE mapping bootstrap placeholders.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-31 21:13:45 +02:00
Alexandre Julliard 42de71c387 ntdll: Fail to load non-existent dlls, except during prefix bootstrap.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-31 21:01:31 +02:00
Alexandre Julliard bb065801a6 ntdll: Map the builtin or fake dll from the Wine dirs if it's missing from the prefix.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-30 11:51:25 +02:00
Alexandre Julliard f17483b936 ntdll: Check the loadorder for .so dlls on the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-26 16:16:12 +01:00
Alexandre Julliard e8ec7a8cec ntdll: Don't pass the application name to get_load_order().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-26 16:16:12 +01:00
Alexandre Julliard 47fed8f5bc ntdll: Don't set the DllPath parameter by default.
Recent Windows versions don't set it either.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-24 20:43:49 +01:00
Alexandre Julliard 28fe84da45 ntdll: Load the main image from the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-24 20:43:49 +01:00
Mark Harmstone 3fd9a423d4 ntdll: Take into account ordinal base when resolving forwarded ordinals.
Signed-off-by: Mark Harmstone <mark@harmstone.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-24 20:43:48 +01:00
Alexandre Julliard ab8f0c3e21 ntdll: Load builtin dlls through NtMapViewOfSection().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-22 20:38:45 +01:00
Alexandre Julliard 0ea5772113 ntdll: Use NtAreMappedFilesTheSame() to find duplicated module mappings.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-22 20:38:25 +01:00
Alexandre Julliard 4ea07a30ce ntdll: Check the builtin signature when creating a module.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-17 11:49:23 +01:00
Rémi Bernon 4d5824112e ntdll: Don't call possibly deadly DbgUiGetThreadDebugObject.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-16 22:16:54 +01:00
Alexandre Julliard e0fc8d7acb ntdll: Call the Unix entry point from the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-16 20:36:43 +01:00
Alexandre Julliard 22da5bd757 ntdll: Move the loadorder support to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-16 20:36:43 +01:00
Alexandre Julliard 8824474e08 ntdll: Move the builtin dll list to virtual.c.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-16 10:58:14 +01:00
Alexandre Julliard e5cade0ff1 ntdll: Remove DLL_WINE_PREATTACH support.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-02 11:01:25 +01:00
Zebediah Figura 0421ea3975 ntdll: Stub Wow64Transition.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45567
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-01 18:03:18 +01:00
Alexandre Julliard 65cff86951 ntdll: Remove no longer needed Unix codepage functions from the PE side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-28 11:29:46 +01:00
Alexandre Julliard 1e2b060eb1 ntdll: Pass correct pointer to build_module().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50731
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-27 17:42:50 +01:00
Alexandre Julliard a46515d449 ntdll: Get rid of attach_implicitly_loaded_dlls().
This should no longer happen.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-26 16:24:25 +01:00
Alexandre Julliard 305cb8af27 ntdll: Initialize the ShowDotFiles option on the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-25 16:15:26 +01:00
Alexandre Julliard 93eb4dbde8 ntdll: Add a separate helper for creating the initial ntdll module.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-25 16:15:26 +01:00
Alexandre Julliard d89b304eb7 ntdll: Avoid sign conversion warnings in Thumb-2 relocation processing.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-19 23:46:25 +01:00
Alexandre Julliard 3f3f673c29 ntdll: Print the version mismatch error from the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-19 22:54:09 +01:00
Alexandre Julliard 37600028fc ntdll: Check the prefer-native flag in the PE header for default load order.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-18 11:11:22 +01:00
Alexandre Julliard 58eceff167 ntdll: Don't use wine/server.h from the PE side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-16 23:01:37 +01:00
Alexandre Julliard c2c57e8dba ntdll: Use the SECTION_IMAGE_INFORMATION bitfields where possible.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-16 21:20:47 +01:00
Alexandre Julliard e7fa4fd147 server: Remove the load/unload_dll requests and the dll list.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-11 16:31:30 +01:00
Alexandre Julliard 7163c78234 ntdll: Close the debug port on thread exit.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-11 16:31:30 +01:00
Alexandre Julliard 4f2ed66a5f server: Use TEB->ArbitraryUserPointer to store the loaded dll names.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-11 11:49:41 +01:00
David Koolhoven 4f7a4146cd ntdll: Don't try to convert module to 64-bit if it doesn't contain code.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50647
Signed-off-by: David Koolhoven <david@koolhoven-home.net>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-10 09:20:46 +01:00
Alexandre Julliard d7bdd5a554 ntdll: Pass the full NT path name to load_builtin_dll().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-09 13:23:17 +01:00
Alexandre Julliard 80898bfee0 ntdll: Fix loading of section table in get_cor_header().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50613
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-04 15:41:02 +01:00
Alexandre Julliard 123023eac7 server: Fetch the data for the debug events from the process memory views.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-02 10:12:56 +01:00
Alexandre Julliard 72baffdb6d ntdll: Load the main module before the other dlls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-02 10:12:16 +01:00
Alexandre Julliard 5fef775ddf ntdll: Delay mapping a module until we have found the final one to load.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-23 16:50:35 +01:00
Alexandre Julliard 63b6295368 ntdll: Check for valid architecture before mapping the module.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-23 11:30:55 +01:00
Alexandre Julliard 7203ad0ecd ntdll: Load the COR header directly from the file handle.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-23 11:30:55 +01:00
Zebediah Figura 16592ca918 ntdll: Set the process detaching flag before calling FLS callbacks.
So that we will not deadlock trying to acquire fls_section.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-07 21:21:14 +01:00
Paul Gofman c181a0ad59 ntdll: Use WINAPI calling convention for stub_entry_point().
Otherwise it ends up being stdcall function in the gcc PE build and
cdecl in ELF while allocate_stub() currently assumes cdecl.

Fixes missing function details output on x64.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-29 21:08:32 +01:00
Michael Stefaniuc 636d398c7d ntdll: Use wide-char string literals.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-04 09:37:42 +01:00
Zebediah Figura 74ec9773dd ntdll: Use a dynamically allocated buffer in find_forwarded_export() if necessary.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50105
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Paul Gofman ec1ea1ea1b ntdll: Call FLS callbacks.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-13 22:30:05 +02:00
Paul Gofman 87ea7698ab ntdll: Allocate TEB FLS data in LdrInitializeThunk().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 12:40:30 +02:00
Paul Gofman 905deff5da ntdll: Reimplement FLS data management on top of up to date structures.
Win10 18132 introduced increased FLS data limit and entirely changed
underlying structure.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 12:40:29 +02:00
Paul Gofman 36981ad033 ntdll: Introduce RtlProcessFlsData() and use it for FLS data destruction.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 12:40:29 +02:00
Alexandre Julliard e5c0e8e296 ntdll: Use load_dll() to load kernel32 to support PE format.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-28 19:38:42 +02:00
Alexandre Julliard a014f413d6 ntdll: Add support for loading a Unix helper library from builtin dlls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 13:41:28 +02:00
Alexandre Julliard 4c45348f78 ntdll: Get rid of the exec_process() Unix library callback.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-02 15:24:01 +02:00
Alexandre Julliard f51cd0a1b5 ntdll: Use the process parameters directly in exec_process().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-02 15:09:33 +02:00
Alexandre Julliard 9e973954fd ntdll: Get rid of the server_init_process_done() Unix library callback.
This time without setting Eip to 0.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-01 18:40:08 +02:00
Alexandre Julliard f7e4fd0cf8 kernel32: Remove the no longer used __wine_start_process() function.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-01 16:41:03 +02:00
Alexandre Julliard 1a9558cf9b ntdll: Call the thread entry point through BaseThreadInitThunk().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-01 16:41:03 +02:00
Alexandre Julliard 2b40969c58 kernel32: Move the initial process breakpoint to LdrInitializeThunk().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-31 11:36:24 +02:00
Alexandre Julliard 2b9a0550bc Revert "ntdll: Get rid of the server_init_process_done() Unix library callback."
This partially reverts commit 1581fb619b.
Steam wants Eip to be valid even before LdrInitializeThunk.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-28 21:08:45 +02:00
Alexandre Julliard 65c37cee24 ntdll: Use exported APIs instead of virtual_map_section() to load PE modules.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-26 14:16:54 +02:00
Alexandre Julliard 1581fb619b ntdll: Get rid of the server_init_process_done() Unix library callback.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-26 13:04:09 +02:00
Alexandre Julliard 4e5811637a ntdll: Use syscalls for the server functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-25 13:55:40 +02:00
Alexandre Julliard 4a7cd0f492 ntdll: Call NtContinue() from LdrInitializeThunk() instead of returning.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-20 18:23:44 +02:00
Alexandre Julliard a865a4f61d ntdll: Allocate 64-bit TEB and PEB in WoW64 mode.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-24 18:26:18 +02:00
Alexandre Julliard 9018a37735 ntdll: Call virtual_set_large_address_space() directly from the Unix side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-22 14:38:40 +02:00
Alexandre Julliard 131e53a1fc ntdll: Avoid private Unix functions in RtlCreateUserStack().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-22 14:38:40 +02:00
Alexandre Julliard 0e45f7b4cd ntdll: Move various stub functions to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-20 20:14:41 +02:00
Alexandre Julliard 8a169390c9 ntdll: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-30 12:25:08 +02:00
Alexandre Julliard f89f7a54c2 ntdll: Support loading a PE-format ntdll.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-30 12:21:15 +02:00
Alexandre Julliard 43be3507c0 ntdll: Setup the main thread before initializing ntdll.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 19:51:47 +02:00
Alexandre Julliard 83a4549e9b ntdll: Remove support for being loaded directly from libwine.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 19:51:47 +02:00
Alexandre Julliard 15c3eaafbb ntdll: Move retrieving the startup info to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 19:51:47 +02:00
Alexandre Julliard 38c78a9682 ntdll: Avoid some Unix dependencies.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 19:51:47 +02:00
Paul Gofman 1f6423f778 ntdll: Call TLS callbacks for main exe on thread detach.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-24 22:36:21 +02:00
Paul Gofman 1dc3383389 ntdll: Call TLS callbacks also for main exe on thread attach.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49007
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49098
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49041
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-24 22:36:19 +02:00
Alexandre Julliard 9b9845e43e ntdll: Move the system information functions to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 20:23:55 +02:00
Alexandre Julliard 577b392440 ntdll: Move searching for builtin dlls to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 20:15:53 +02:00
Alexandre Julliard 31538a79a9 ntdll: Move the loading of .so dlls to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 20:09:42 +02:00
Alexandre Julliard 99649d7892 ntdll: Add a common helper for building a modref.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 19:31:18 +02:00
Alexandre Julliard 9e3893cc29 ntdll: Use FSCTL_GET_OBJECT_ID to compare file identities.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-22 12:06:19 +02:00
Alexandre Julliard e84ec36a62 ntdll: Move the thread get/set information functions to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-18 14:48:15 +02:00
Alexandre Julliard e9e5c95058 ntdll: Move the process information functions to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-16 18:36:30 +02:00
Alexandre Julliard c3e2013b61 ntdll: Move the get/set file information functions to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-14 19:35:20 +02:00
Damjan Jovanovic f728a5f3f9 ntdll: Interpretation of l_addr depends on FreeBSD version.
FreeBSD changed l_addr to mean the relocation offset like it
does on other OSes, and provided a dynamic linker symbol,
"_rtld_version_laddr_offset", that can be used to check the
meaning.

Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-10 08:32:33 +02:00
Alexandre Julliard 552bc8aa47 ntdll: Move the wait on address implementation to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 15:47:30 +02:00
Alexandre Julliard 2333099c52 ntdll: Move signal handlers to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 15:25:52 +02:00
Alexandre Julliard 20c91c5e80 ntdll: Use NtContinue() to set the thread initial context.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-06 15:41:38 +02:00
Alexandre Julliard 4ffe39573b ntdll: Move mapping of the user shared data to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:38 +02:00
Alexandre Julliard cd0c598802 ntdll: Consolidate some of the init routines into the init_threading() entry point.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:38 +02:00