Andrew Wesie
06c5a9ab55
ntdll: Read entry point in LdrInitializeThunk.
...
Overwatch overwrites the PE header contents in a TLS callback. This results in
a crash on wine, because the entry point will be incorrect in start_process.
Signed-off-by: Andrew Wesie <awesie@gmail.com>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-09 21:37:08 +01:00
Ken Thomases
3d8efb2388
ntdll: For Mac 64-bit, poke NtCurrentTeb()->ThreadLocalStoragePointer to the corresponding offset from %gs.
...
64-bit Windows apps have hard-coded accesses to %gs:0x58 baked into them. They
need to find the ThreadLocalStoragePointer there.
Technically, the gsbase register and the memory it points to belong to the
pthread implementation on macOS. It's used for the pthread TLS implementation.
Slot 11 (offset 0x58) is currently used for the implementation of the ttyname()
system library function. We do not anticipate that Wine or any of the system
libraries or frameworks it uses will call ttyname(). Furthermore, Apple has
made it so that future releases of macOS will no longer use that slot. So, we
hijack it for our purposes.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 12:04:10 +09:00
Michael Müller
77be592845
ntdll: Do not sort InMemoryOrderModuleList by memory address.
...
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-07-07 21:23:26 +09:00
Sebastian Lackner
b89f88841e
ntdll: Skip unused import descriptors when loading libraries.
...
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-11 12:22:34 +09:00
Jacek Caban
443c2a4719
ntdll: Pass SYNCHRONIZE flag in NtOpenFile and NtCreateFile calls.
...
This is needed by Office 2013, which hooks those functions and expects
flag to be set.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-09 20:36:17 +09:00
Alex Henrie
48f3bacb0b
ntdll: Avoid double initialization.
...
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-22 22:25:39 +09:00
Dmitry Timoshkov
beeeb2a528
ntdll: Avoid path buffer re-allocation step for common dll name lengths.
...
For instance c:\windows\system32\advapi32.dll is 33 characters long with
0-terminator.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-10 19:43:11 +09:00
Dmitry Timoshkov
7d2cd2fe61
ntdll: Print process id in the loader log if requested.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2015-10-01 23:08:13 +09:00
Dmitry Timoshkov
7386de357f
ntdll: Do not fail to relocate an image if the size of relocation block is 0.
2015-08-20 14:32:32 +09:00
Dmitry Timoshkov
e67a00b466
ntdll: Separate image relocation from NtMapViewOfSection.
2015-08-18 19:56:48 +09:00
Sebastian Lackner
38076fa633
ntdll: Move cookie initialization code from memory management to loader.
2015-08-12 22:58:28 +09:00
Piotr Caban
18d9ca872a
ntdll: Fix modules order in InInitializationOrderModuleList.
2015-08-12 22:54:42 +09:00
Dmitry Timoshkov
21c3724813
ntdll: Cache contents of IMAGE_TLS_DIRECTORY instead of saving a directory pointer.
2015-07-15 15:13:16 +09:00
Sebastian Lackner
64ee8a4a53
ntdll: Do not omit mandatory argument for VirtualProtect.
2015-05-04 20:07:58 +09:00
Francois Gouget
ca1545cf17
ntdll: Remove unneeded NONAMELESSXXX directives.
2015-03-16 15:04:50 +09:00
Michael Müller
15d013067d
ntdll: Wait until builtin dlls are unloaded before releasing the virtual view.
2014-10-07 20:22:15 +02:00
Sebastian Lackner
5272ca241b
ntdll: Set ldr.EntryPoint for main executable.
2014-10-07 20:22:13 +02:00
Sebastian Lackner
636dc013cd
ntdll: Use call_dll_entry_point to execute TLS callbacks.
2014-09-08 16:03:38 +02:00
Sebastian Lackner
b7f77bb1fd
ntdll: Save more registers in call_dll_entry_point on i386.
2014-09-08 16:02:17 +02:00
Nikolay Sivov
5a8d73283c
ntdll: Fix LdrLockLoaderLock()/LdrUnlockLoaderLock() on 64bit.
2014-06-11 13:05:39 +02:00
Nikolay Sivov
97e2af1f73
ntdll: Implement non-blocking mode for LdrLockLoaderLock().
2014-05-16 10:52:52 +02:00
Alexandre Julliard
0e42fd97c0
ntdll: Detect 16-bit modules and resolve imports for them.
2014-02-25 16:08:24 -06:00
Alexandre Julliard
ff08cd597d
ntdll: Only allocate TLS data when resolving imports.
2014-02-17 20:16:08 +01:00
Alexandre Julliard
f5fc925f0e
ntdll: Move fixup_imports to avoid forward declarations.
2014-02-17 20:15:45 +01:00
Alexandre Julliard
0f0bf58663
ntdll: Don't fixup imports for executables.
2014-02-17 20:15:44 +01:00
Alexandre Julliard
7307298ac3
ntdll: Don't fixup imports when a dll is already loaded.
2014-02-17 20:15:43 +01:00
Martin Storsjo
48ae8f3070
ntdll: Improve handling of THUMB_MOV32 relocations.
2014-01-03 11:27:29 +01:00
Alexandre Julliard
e54503f708
ntdll: Allocate TLS data in all running threads on module load.
2013-12-23 18:39:58 +01:00
Alexandre Julliard
1a4eca6f16
ntdll: Allocate TLS slots dynamically on module load.
2013-12-23 18:39:58 +01:00
Alexandre Julliard
384d698a9e
ntdll: Allocate a separate pointer for each TLS slot.
2013-12-23 18:39:58 +01:00
Alexandre Julliard
e8eb781327
server: Check PE file architecture at mapping creation time.
2013-11-21 19:39:02 +01:00
André Hentschel
b6b9050d58
ntdll: Implement LdrResolveDelayLoadedAPI.
2013-11-12 12:58:03 +01:00
Frédéric Delanoy
416930d498
ntdll: Use BOOL type where appropriate.
2013-11-04 11:03:43 +01:00
Nikolay Sivov
146ff49161
ntdll: Support pinning module refcount with LdrAddRefDll().
2013-10-14 10:49:44 +02:00
Dmitry Timoshkov
c7afb0bb88
ntdll: Don't use asynchronous file IO in the loader.
2013-09-30 20:35:03 +02:00
Alexandre Julliard
3799d55d9b
ntdll: Implement RtlExitUserProcess.
2013-07-19 12:15:15 +02:00
Alexandre Julliard
1c11770159
ntdll: Simplify detach sequence now that there is no possible race on process exit.
2013-07-19 12:13:09 +02:00
André Hentschel
e187c4aec2
ntdll: Respect the 8-bit part in the ARM relocation.
2013-04-15 17:01:46 +02:00
Alexandre Julliard
cd03a51e7d
ntdll: Set the address space limit before running application code.
2013-04-04 13:28:43 +02:00
André Hentschel
0993f8bb7b
ntdll: Implement IMAGE_REL_BASED_THUMB_MOV32 relocation on ARM.
2013-01-21 12:51:14 +01:00
Alexandre Julliard
90e90e3b6a
ntdll: Make the page_size variable global.
2013-01-08 16:35:30 +01:00
Christian Costa
49d8b4c039
ntdll: Init retv to FALSE so in case of exception the trace shows the failure.
2012-10-01 12:05:48 +02:00
André Hentschel
33236819c8
ntdll: Add support for dynamically generated stub entry points on ARM.
2012-03-12 10:47:32 +01:00
Dmitry Timoshkov
0e85fc66de
ntdll: Use PAGE_EXECUTE_READ protection for an image section.
2012-01-24 18:10:31 +01:00
Jacek Caban
43a9faa734
ntdll: Make LdrLoadDll hotpatchable.
2012-01-06 19:24:23 +01:00
Dmitry Timoshkov
26f4ff1a38
ntdll: Use PAGE_EXECUTE_READWRITE protection when allocating stubs.
2011-11-08 10:19:42 +01:00
Dmitry Timoshkov
df9a086865
ntdll: Use PAGE_READWRITE access when resolving DLL imports.
2011-11-03 13:35:11 +01:00
Alexandre Julliard
f4024eaa49
ntdll: Fetch the windows directory from the shared user data.
2011-06-16 12:29:21 +02:00
Marcus Meissner
0f0692716b
ntdll: Mark FILE_umask with hidden visibility.
2011-05-27 12:21:39 +02:00
Alexandre Julliard
900352bc6b
server: Store a mapping instead of a file for process dlls.
2011-04-18 14:45:32 +02:00