Commit Graph

433 Commits

Author SHA1 Message Date
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
Alexandre Julliard e272b31b6b ntdll: Ensure alignment of static TLS data and free it at thread exit. 2010-12-15 13:16:55 +01:00
Marcus Meissner 2ca5513a62 ntdll: Set correct protection flags on sections in builtin DLLs. 2010-08-24 17:22:32 +02:00
Jacek Caban 9713d62e89 ntdll: IMAGE_REL_BASED_HIGH, IMAGE_REL_BASED_LOW and IMAGE_REL_BASED_HIGHLOW should be supported on win64. 2010-08-20 13:21:27 +02:00
Alexandre Julliard 28e1398237 ntdll: Set a valid process title for the initial process. 2010-06-08 11:55:23 +02:00
Mikhail Maroukhine 2b8f11b8c0 ntdll: Fix compiler warnings with flag -Wcast-qual. 2010-03-29 12:15:28 +02:00
Alexandre Julliard 83c272a258 ntdll: Return STATUS_IMAGE_NOT_AT_BASE when an image mapping has to be relocated. 2010-03-03 20:05:40 +01:00
Alexandre Julliard 9055e9e3dd ntdll: Set the heap debug flags based on the GlobalFlag value. 2010-01-22 12:33:03 +01:00
Alexandre Julliard 39a1227cdb ntdll: Load the various PEB global options at startup. 2010-01-20 17:30:00 +01:00
Alexandre Julliard 1c119dad6d ntdll: Implement LdrQueryImageFileExecutionOptions and use it to retrieve the per-process global flag. 2010-01-20 17:11:03 +01:00
Nikolay Sivov dbbd2161ab ntdll: Call DLL_PROCESS_DETACH if attaching failed. 2009-11-30 12:53:30 +01:00
Alexandre Julliard 4e77222820 ntdll: Move the window and system dir variables to directory.c 2009-10-22 19:55:06 +02:00
Andrey Turkin 7aeaa0338c ntdll: Run TLS callbacks in zero-sized TLS directories. 2009-10-12 12:14:21 +02:00
Alexandre Julliard 135612d22f ntdll: Add support for ordinal forwards. 2009-09-25 13:12:02 +02:00
Alexandre Julliard c39e28edfb ntdll: Support both 32-bit and 64-bit modules in RtlImageDirectoryEntryToData. 2009-09-25 12:46:39 +02:00
Michael Karcher be90ae2fc3 ntdll: Fix DEP status initialization. 2009-09-15 16:41:23 -05:00
Alexandre Julliard c9d85dd576 ntdll: Route the process startup through the platform-specific thread startup code. 2009-08-29 11:24:44 +02:00
Alexandre Julliard b76dc21b82 ntdll: Ignore activation context entries that don't specify a path. 2009-08-05 11:23:16 +02:00
Alexandre Julliard 09712593c8 ntdll: Release some address space after the process initialization is done. 2009-06-25 14:33:34 +02:00
Alexandre Julliard 0c46341543 ntdll: Add call frame annotations in x86 assembly code. 2009-06-25 12:05:09 +02:00
Nikolay Sivov ae8999f982 ntdll: Call NtCreateSection with NULL attributes loading native dll. 2009-06-08 12:42:55 +02:00
Michael Stefaniuc d2f6f56873 ntdll: Remove superfluous pointer casts. 2009-03-23 12:40:53 +01:00
Alexandre Julliard 1056771b91 ntdll: Allocate the stack for all threads, don't rely on pthread to do it for us. 2009-02-23 14:24:59 +01:00
Alexandre Julliard 36334a1b5a ntdll: Call pthread_sigmask directly instead of through the pthread function table. 2009-02-20 18:07:41 +01:00
Alexandre Julliard 947976f22c server: Store module names as client_ptr_t instead of void pointers. 2008-12-29 17:10:11 +01:00
Alexandre Julliard f2c4e09e80 server: Make module handles always 64-bit. 2008-12-29 16:47:51 +01:00
Maarten Lankhorst 72423f5f6d ntdll: Make the loader process relocations correctly for x86_64. 2008-12-26 13:42:07 +01:00
Maarten Lankhorst 70441d5bb8 kernel32: Change all functions to use CDECL. 2008-12-23 13:09:45 +01:00
Maarten Lankhorst 768160e944 ntdll: Make all exported wine functions CDECL. 2008-12-17 15:02:25 +01:00
Alexandre Julliard ccdfa4941e ntdll: Add support for dynamically generated stub entry points.
Based on a patch by Maarten Lankhorst.
2008-12-16 12:25:07 +01:00
Alexandre Julliard a2089abd94 ntdll: Enforce correct protection values in virtual memory functions. 2008-12-11 14:05:42 +01:00
Alexandre Julliard b8e8cb6621 ntdll: Add a heuristic to detect dlls that are wrongly marked as using native subsystem. 2008-12-11 12:18:35 +01:00
Alexandre Julliard d1b3d484f7 server: Add functions for conversions between server object handles and pointer-style handles. 2008-12-08 16:05:17 +01:00
Alexandre Julliard 92cf3d1900 ntdll: Don't set noexec protection on builtin dlls, some broken apps clear the execute permission. 2008-11-17 15:56:54 +01:00
Alexandre Julliard a0c4bfef9d ntdll: Add private function to manage system virtual views instead of abusing NtAllocateVirtualMemory. 2008-11-14 17:40:54 +01:00
Alexandre Julliard 2e25b859ea ntdll: Don't call the dll entry point for native modules. 2008-11-10 13:20:45 +01:00
Alexandre Julliard 4ee2d9d8eb ntdll: Initialize the large address space before attaching dlls. 2008-11-03 13:34:12 +01:00
Alexandre Julliard 58d076b419 ntdll: Force execute permission again on the stack after clearing it. 2008-06-26 21:10:57 +02:00
Alexandre Julliard c9504d9447 ntdll: Move signal unmasking to make sure injected code runs on the correct stack. 2008-05-20 10:59:20 +02:00
Alexandre Julliard fca6067748 ntdll: Implemented LdrProcessRelocationBlock. 2008-04-02 20:38:51 +02:00
Alexandre Julliard 600694546f ntdll: Moved stack allocation for thread and process to a common routine in virtual.c. 2008-04-01 14:11:44 +02:00
Alexandre Julliard 9b49cc2899 ntdll: Clear the process stack again after dll init and before calling the main entry point. 2008-03-26 17:08:57 +01:00
Alexandre Julliard 7a7ef6a64c kernel32: Moved the allocation of the process stack to ntdll. 2008-03-26 17:08:38 +01:00
Alexandre Julliard 96fc6e317e ntdll: Fixed handling of fake dlls when loading a builtin. Reported by Jacek Caban. 2008-03-05 12:21:19 +01:00
Alexandre Julliard 254c17f841 ntdll: Only grab the loader lock once we actually call external functions. 2008-03-01 13:30:34 +01:00
Rob Shearman 8608e895eb Add a new convenience macro for an exception handler that handles all exceptions.
When using native compiler exceptions, the previous method of doing 
this, __EXCEPT(NULL), would expand to __except( 
(NULL)(GetExceptionInformation())) which doesn't compile as NULL isn't a 
function.

So add a new macro, __EXCEPT_ALL, which works correctly both when using 
native compiler exceptions and without and which makes the meaning of 
code in which it is used clearer.
2008-02-16 14:58:24 +01:00
Rob Shearman 0d9e09d8bf ntdll: Add an exception handler around calls to module entry points.
Change the return value from BOOL to NTSTATUS so that we can return the 
exception code to the caller.
2008-02-15 09:59:55 +01:00
Alexandre Julliard 78fba54ab7 ntdll: Store the unhandled exception filter at startup to avoid race conditions. 2008-02-12 22:39:19 +01:00
Alexandre Julliard 0861141725 ntdll: Support delayed loading of modules referenced by forwarded entry points. 2007-12-06 21:43:54 +01:00
Alexandre Julliard 0f5fc117a2 ntdll: Unblock signals in process init only after the dlls have been imported. 2007-11-19 14:27:07 +01:00
Alexandre Julliard c70a17dbd9 ntdll: Send the exit code to the server on failed initialization. 2007-11-19 14:26:05 +01:00
Alexandre Julliard 35c91324ea ntdll: Initialize the PEB LoaderLock pointer. 2007-11-19 13:56:26 +01:00
Detlef Riekenberg 2be2c1acc5 ntdll: Dump the base address when a module is loaded. 2007-10-26 15:14:21 +02:00
Detlef Riekenberg 3e83b75038 ntdll: Avoid segfault with snoop for exefiles with a broken export table. 2007-09-26 12:15:14 +02:00
Alexandre Julliard e22ce46278 ntdll: Pin down all dlls imported by the main exe. 2007-08-30 16:34:27 +02:00
Alexandre Julliard 5b6bb63adb ntdll: Load dll from the directory containing the manifest for local assemblies. 2007-07-31 20:31:42 +02:00
Alexandre Julliard 4e4c150bed ntdll: Avoid activation context leak for dlls with no imports. 2007-07-30 23:37:39 +02:00
Alexandre Julliard b67b66d7b3 ntdll: Fix a compiler warning. 2007-07-30 14:46:09 +02:00
Alexandre Julliard e06eaa49ae ntdll: Activate the module's activation context while resolving imports and attaching. 2007-07-26 11:06:17 +02:00
Alexandre Julliard 76bd190a72 ntdll: Use activation contexts information to load dlls (based on a patch by Jacek Caban). 2007-07-26 11:05:32 +02:00
Alexandre Julliard 4156a716b0 ntdll: Create the per-module activation context at module load time. 2007-07-25 16:50:32 +02:00
Alexandre Julliard 270f725526 ntdll: Create the process activation context at initialization time. 2007-07-25 16:48:40 +02:00
Jacek Caban 125e710ff1 ntdll: Store the windows directory too. 2007-07-19 18:22:43 +02:00
Michael Stefaniuc bf6a96ca66 ntdll: Fix missing unlock on error path. Found by Smatch. 2007-07-02 13:34:29 +02:00
Alexandre Julliard 5817e36634 ntdll: Improved the stub behavior of NtQuerySystemInformation(SystemModuleInformation). 2007-06-19 16:58:42 +02:00
Dmitry Timoshkov e142779b09 ntdll: Fix compilation warnings in 64-bit mode. 2007-05-23 13:10:20 +02:00
Alexandre Julliard 5aa70b3d80 ntdll: Setup the shared user data structure at 0x7ffe0000. 2007-05-18 18:09:03 +02:00
Alexandre Julliard 447fda5206 ntdll: Implemented LdrAddRefDll. 2007-05-16 16:39:29 +02:00
Alexandre Julliard b64530eee4 ntdll: Reimplement LdrGetDllHandle to use the same search algorithm as LdrLoadDll. 2007-05-16 16:35:43 +02:00
Andrew Talbot 9fe3b60f12 ntdll: Exclude unused headers. 2007-05-15 12:19:31 +02:00
Andrew Talbot 0108667754 ntdll: Replace inline static with static inline. 2007-03-17 20:03:57 +01:00
Dmitry Timoshkov e8bba26c80 ntdll: Catch the exceptions in the TLS callback like Windows does. 2007-03-13 12:47:38 +01:00
Alexandre Julliard 8891d6de48 ntdll: Block async signals during process init and thread creation. 2007-01-18 12:23:04 +01:00
Joel Parker 2319999a05 Remove redundant semicolons for ANSI compatibility. 2007-01-17 11:58:15 +01:00
Alexandre Julliard 5bd513640b ntdll: Moved the check for removable file in load_dll to the server. 2007-01-12 14:42:43 +01:00
Alexandre Julliard 2a1dc15790 ntdll: Fix the libdl refcount when loading the same builtin twice. 2006-12-20 15:54:27 +01:00
Alexandre Julliard 7ae1b2897e ntdll: Check the NX compatibility flag for every loaded module. 2006-12-07 20:52:16 +01:00
Alexandre Julliard 822be6c90f ntdll: Force exec permissions on all mmaps unless the app is marked NX-compatible. 2006-12-05 15:42:29 +01:00
Alexandre Julliard 84fb1e1f3f ntdll: Allow module with extensions in forward specifications. 2006-12-04 13:37:32 +01:00
Alexandre Julliard bda2832d8d ntdll: Moved command-line help to the loader binary. 2006-11-06 13:04:56 +01:00
Alexandre Julliard c9b5569bc2 ntdll: Added implementation of RtlDllShutdownInProgress. 2006-11-03 13:52:02 +01:00
Hans Leidekker f7b0ba7aa7 ntdll: Win64 printf format warning fixes. 2006-10-18 12:35:26 +02:00
Alexandre Julliard 6f7b1f6463 ntdll: Move the calling of the process entry point back to kernel32.
Apparently some copy protection stuff relies on that.
This reverts commit 50fca716fd.
2006-07-31 21:25:29 +02:00
Alexandre Julliard d16c7f96c9 ntdll: Set initial module refcount to 1 to avoid unloading during imports fixup. 2006-07-31 21:03:01 +02:00
Alexandre Julliard 50fca716fd ntdll: Moved the calling of the process entry point to LdrInitializeThunk. 2006-07-13 14:58:04 +02:00
Eric Pouech 201f469512 ntdll: Free TLS pointers when exiting thread. 2006-05-27 13:00:33 +02:00
Alexandre Julliard 9769806c3a ntdll: Implemented RtlPcToFileHeader. 2006-05-27 10:55:48 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Alexandre Julliard f5d3adaf59 ntdll: Process --help and --version args earlier on during startup. 2006-04-03 12:07:20 +02:00
Alexandre Julliard c307f4990f ntdll: Added a DLL_WINE_PREATTACH call to DllMain for builtins.
By returning FALSE from this call, a builtin dll can specify that we
should try to load the native one instead.
2006-03-21 15:10:22 +01:00
Alexandre Julliard 2f2819466b ntdll: Detect the fake dlls created by setupapi and refuse to load them. 2006-03-21 11:31:23 +01:00
Alexandre Julliard ac60251312 ntdll: In MODULE_FlushModrefs, also free dlls that haven't been initialized yet. 2006-03-18 18:41:21 +01:00
Alexandre Julliard 0335a4b910 ntdll: Don't reset the load count when reusing a builtin modref. 2006-02-28 12:41:25 +01:00
Alexandre Julliard 4107751dd3 ntdll: Simplify loadorder code by using an enum instead of an array
to represent load order values.
Added a special value for default load order so that we can handle it
differently later on.
2006-02-22 16:30:05 +01:00
Alexandre Julliard 477b3bf566 kernel: Moved the get_startup_info call to ntdll. 2006-02-22 09:57:19 +01:00
Alexandre Julliard e27358ea5c server: Remove no longer needed fields in the init_process_done request. 2006-02-21 20:08:19 +01:00
Alexandre Julliard 2df3ad64eb kernel: Use LoadLibrary to load the main exe in all cases. 2006-02-21 19:48:18 +01:00
Alexandre Julliard ca311b3f4c ntdll: Support loading a builtin under a different name.
Find the proper modref in that case based on the dlopen handle.
2006-02-21 19:43:22 +01:00
Alexandre Julliard fa5b5102d7 ntdll: Moved LDR_DONT_RESOLVE_REFS handling into fixup_imports.
This ensures that we never fixup imports twice on the same dll.
2006-02-21 19:32:26 +01:00
Alexandre Julliard 68ea200f32 ntdll: Support loading builtin dlls with an explicit path name also
when loadorder is set to builtin only.
2006-02-21 11:56:16 +01:00
Uwe Bonnes 19e29d6035 ntdll: Remove spaces at end of name in import_dll. 2006-02-21 11:50:23 +01:00
Alexandre Julliard 69089152d1 ntdll: Better handling of errors when loading a builtin dll from an
existing file.
2006-02-09 12:15:57 +01:00
Alexandre Julliard 9669ff8de4 ntdll: Get rid of the main_file argument in LdrInitializeThunk. 2006-02-08 15:22:24 +01:00
Alexandre Julliard 1d23e7fee2 ntdll: Check for existing modref for the main exe before creating it
in LdrInitializeThunk.
2006-02-08 15:10:56 +01:00
Alexandre Julliard a458f3e538 ntdll: Support loading a builtin dll by specifying an explicit path to
the .so file.
2006-02-07 21:16:25 +01:00
Eric Pouech e66e227dbe Fixes for missing prototypes warnings. 2006-02-06 13:13:28 +01:00
Robert Shearman 2d08465b81 ntdll: Loader optimization.
Optimize for the case where a DLL with no path is requested and it is
already loaded.
2006-01-18 14:22:19 +01:00
Alexandre Julliard 45a4e5439b Set refcount to -1 on implicitly loaded dlls to avoid unloading them
(suggested by Michael Ost).
2006-01-04 14:55:33 +01:00
Alexandre Julliard 5dc6d95952 ntdll: New implementation of relay thunks.
New implementation of relay thunks that doesn't require modifying code
on the fly, so that the thunks can be put in the text section.
Some performance improvements.
2005-12-18 10:45:01 +01:00
Alexandre Julliard ae964ac801 Take advantage of the __EXCEPT_PAGE_FAULT macro. 2005-12-16 17:17:57 +01:00
Alexandre Julliard 4cbf118d88 Check for a valid module before attempting to read the export
directory in LdrGetProcedureAddress.
2005-11-29 17:10:30 +01:00
Ge van Geldorp 1a1583a364 Match PSDK STATUS_* definitions. 2005-11-28 17:32:54 +01:00
Alexandre Julliard cc01e8ff05 Preserve 16-byte stack alignment in the various assembly
functions. Needed for MacOSX.
2005-11-23 19:55:06 +01:00
Alexandre Julliard cb443bdb04 Attach to implicitly loaded builtin dlls on process startup. 2005-10-26 12:12:44 +00:00
Alexandre Julliard c2bb910877 Ignore the size of the import directory, process imports until we find
a null entry.
2005-10-04 15:54:55 +00:00
Alexandre Julliard 884599112e Use SIZE_T instead of ULONG for the size arguments of the virtual
memory functions.
2005-09-12 10:36:06 +00:00
Alexandre Julliard 20a1a203c6 Use a more portable scheme for storing the name of a critical
section.
2005-09-09 10:19:44 +00:00
Mike McCormack b5bd4a101a Fix gcc 4.0 warnings. 2005-09-02 14:47:36 +00:00
Alexandre Julliard bba5423d0f Uncomment out DisableThreadLibraryCalls in DllMain and add the
kernel32 imports that it requires.
2005-08-29 15:11:37 +00:00
Alexandre Julliard b480a3c544 Removed a redundant and possibly wrong warning. 2005-08-12 16:02:42 +00:00
Alexandre Julliard 915aebb852 Moved the version initialization to ntdll.
Properly set the version fields in the PEB.
Removed some no longer used structures.
2005-08-10 13:12:27 +00:00
Alexandre Julliard 31dd4af57d Don't call process attach notification during process shutdown.
Make sure we don't insert a module in the same list twice.
2005-08-09 20:45:46 +00:00
Kevin Koltzau 6873379991 Define 64bit PE structures. 2005-07-19 11:44:32 +00:00
Alexandre Julliard 3be8cb8b02 Moved initialization of the default user process parameters to ntdll. 2005-07-14 12:33:30 +00:00
Alexandre Julliard 11ad6a0ac4 Return the startup info size in the init_thread request, and allocate
the process parameters structure in ntdll instead of kernel.
2005-07-13 19:43:35 +00:00
Alexandre Julliard d3a6a16efd Initialize relay debugging earlier on now that the registry is loaded
by the server.
2005-07-13 14:23:06 +00:00
Mike McCormack 6b636e3e7b Use RTL_CRITICAL_SECTION instead of CRITICAL_SECTION. 2005-06-25 18:00:57 +00:00
Mike McCormack 04f9f1b066 Don't include winbase.h or winerror.h when not necessary. 2005-06-21 09:52:40 +00:00
Mike McCormack 5b2d5fd758 Use HANDLE instead of HKEY in the NT API. 2005-06-17 13:58:33 +00:00
Alexandre Julliard 73f6718134 Allocate the system view for builtin modules earlier in
load_builtin_callback so that we also create one for the main
executable.
2005-06-05 18:22:02 +00:00
Alexandre Julliard 7016b99972 Moved the loaddll trace into the load_builtin_dll function so that it
gets printed even when we don't get the expected so file.
2005-05-23 10:33:34 +00:00
Alexandre Julliard b3e0a032ce Moved entry point definitions from module.h to kernel16_private.h. 2005-05-18 18:27:54 +00:00
Alexandre Julliard 4de9cfd1cd Moved import tracing to a separate channel so that +module traces
don't contain too much noise.
2005-05-18 09:51:46 +00:00
Vincent Béron 0bdac8c0f9 Use "" for Windows includes in dlls, instead of <>. 2005-03-21 10:52:26 +00:00
Dmitry Timoshkov 75b93ff1aa Match OVERLAPPED structure to the SDK definition. 2005-03-17 19:00:08 +00:00
Dmitry Timoshkov 0497af09a7 Match RaiseException and EXCEPTION_RECORD to SDK definitions. 2005-02-24 13:15:36 +00:00
Ivan Leo Puoti d3edafe1e2 Replace GetCurrentProcess() with NtCurrentProcess() in ntdll. 2005-02-22 19:33:50 +00:00
Ivan Leo Puoti bfef6208a2 Added NtLoadDriver and NtUnloadDriver stubs. 2005-01-24 12:49:53 +00:00
Mike Hearn bef1336667 Give a more informative error when a DLL fails to initialize during
startup.
2005-01-11 16:01:31 +00:00
Alexandre Julliard d5088668de Generate stub entries on the fly for missing entry points instead of
returning a deadbeef pointer.
2004-12-14 20:03:23 +00:00
Alexandre Julliard b98c2e3847 Append .dll extension in all cases (spotted by Mike Hearn). 2004-11-23 14:03:49 +00:00
Alexandre Julliard fac7a5ab8b Free the memory view before we unload a builtin dll to avoid a race
condition.
2004-11-06 03:54:23 +00:00
Robert Shearman 2050591370 Fix NtAllocateVirtualMemory declaration and fix users of the
function.
2004-10-11 20:59:06 +00:00
Mike McCormack d80eb97b29 Use FILE_SHARE_DELETE when loading modules, as running an exe that's
going to be deleted should work.
2004-09-15 18:02:49 +00:00
Alexandre Julliard 60f0439ba6 Make relay and snooping work for LoadLibrary+GetProcAddress sequence
(based on a patch by Dmitry Timoshkov).
2004-08-02 22:25:01 +00:00
Alexandre Julliard 9f58ee709d Set the system directory in ntdll as soon as we have determined it. 2004-07-15 22:07:21 +00:00
Filip Navara fc51760f48 Unprotect Import Address Table while filling it. 2004-06-22 02:07:47 +00:00
Alexandre Julliard fd9792bdc9 Added support for the IMAGE_FILE_LARGE_ADDRESS_AWARE flag. 2004-06-18 00:26:57 +00:00
Eric Pouech db52588754 Const correctness. 2004-06-15 00:47:00 +00:00
Alexandre Julliard ae42aad2ae Initialize ntdll debugging earlier on so that we can trace the server
startup too.
2004-05-05 05:56:37 +00:00
Alexandre Julliard 174e2a6464 Reimplemented GetFileAttributesW, SetFileAttributesW and SetFileTime
using the corresponding ntdll functionality.
2004-04-20 00:36:29 +00:00
Alexandre Julliard e792fb74ba Implemented NtCreatelFile using the new symlink scheme.
Use NtCreateFile in the loader, and get rid of the CreateFileW upcall
hack.
2004-04-12 23:31:09 +00:00
Alexandre Julliard 670711ef25 Handle file mappings on removable media entirely inside ntdll. 2004-04-06 23:13:47 +00:00
Alexandre Julliard a86a022256 Added workaround for broken dlls that modify ebx in their entry point
(reported by Christian Costa).
2004-03-19 02:07:16 +00:00
Mike Hearn a54e3216c3 - Add debug SnoopFromInclude/SnoopFromExclude options.
- Correct TRACE debug channel usage in SNOOP_SetupDLL.
- Refactor check_relay_from_relay.
2004-03-16 03:10:07 +00:00
Alexandre Julliard fe8ead56a8 Get rid of ntdll_get_process_heap and ntdll_get_process_pmts by using
standard APIs instead.
2004-03-12 01:59:35 +00:00
Alexandre Julliard fc8b376a55 Return right away from import_dll when a dll is not found to avoid
displaying many useless function errors.
2004-02-24 01:25:03 +00:00
Alexandre Julliard f19c9e7cdd Get pointer to CreateFileW earlier on during startup.
Make sure we don't crash when loading a dll before the modref for the
main exe has been created.
2004-02-07 01:11:54 +00:00
Alexandre Julliard 3604824262 If supported by the linker, prevent the ELF loader from calling the
dll constructors at load time and call them from the dll entry point
instead.
2004-01-08 03:36:53 +00:00
Mike Hearn 5f5034ff3b Print exe name when initialization fails. 2003-12-31 00:11:48 +00:00
Alexandre Julliard 0382aead65 Removed no longer used extra space allocated in the modref structure. 2003-12-03 20:28:41 +00:00
Alexandre Julliard 402b79a1e8 Porting fixes. 2003-11-27 00:59:36 +00:00
Alexandre Julliard cba157e998 Better support for loading exe files as libraries.
Make sure kernel32 and ntdll have a full path name even though they
are loaded before we know the system dir.
2003-11-25 05:28:57 +00:00
Alexandre Julliard 16b4411669 Removed MODULE_GetLoadOrderA. 2003-11-25 01:03:04 +00:00
Alexandre Julliard f9be2f3d21 Removed some unnecessary includes. 2003-11-17 20:31:29 +00:00
Alexandre Julliard 7924f421e9 Allocate the TEB and signal stack separately from the main stack.
Dynamically allocate the initial TEB too so that it is properly
page-aligned.
2003-11-04 04:50:18 +00:00
Alexandre Julliard a062677a95 Allocate a memory view for builtin dlls so that VirtualQuery returns
something sensible.
2003-11-03 22:23:09 +00:00
Alexandre Julliard 8f1b861e27 Repaired relay debugging for kernel and ntdll (spotted by Uwe
Bonnes).
2003-10-28 00:25:32 +00:00
Alexandre Julliard f9df57d94d Call the application entry point from kernel32, some apps depend on
that.
2003-10-24 00:32:36 +00:00
Gerald Pfeifer 9b4b21b7b0 Fix function pointer variable declaration in __wine_process_init(). 2003-10-14 05:19:24 +00:00
Alexandre Julliard e55d5937ac Set or clear the BeingDebugged flag in the PEB when a debugger is
attached to or detached from a process.
Don't send exception events to the server unless a debugger is
present.
2003-10-14 01:30:42 +00:00
Alexandre Julliard a438ebc509 Fixed importing of dlls with no exports (reported by Warren Baird).
Don't crash on an empty load order specification (reported by Maxime
Bellengé).
Try to avoid crashing when an import is missing for a builtin dll.
2003-10-10 23:28:51 +00:00
Alexandre Julliard 410e6b7b39 Changed the init code to make libwine load only ntdll and transfer
control to it, and then have ntdll load kernel32 using the normal
loader mechanisms.
Get rid of BUILTIN32_LoadExeModule.
2003-10-10 00:12:17 +00:00
Alexandre Julliard 953849f2fc Added hack to call CreateFileW through a pointer so that we don't need
to link to kernel functions.
Commented out SMB support in NtReadFile for now.
2003-10-08 03:51:31 +00:00
Alexandre Julliard af192f83b6 Store a "removable" flag instead of the full drive type in the server
file object; this way we don't need to use GetDriveTypeW in the loader
code.
Make sure we always have a valid builtin_load_info pointer.
2003-10-08 00:25:32 +00:00
Alexandre Julliard 146afcc98c Removed references to GetSystemDirectoryW.
Optimized module lookup a bit.
Keep track of the modref pointer across builtin dll loads to avoid
having to look it up by name afterwards.
2003-10-07 22:56:34 +00:00
Alexandre Julliard 5d9422b09f Rewrite of the dll file search algorithm to better deal with the
broken behavior of RtlDosSearchPath_U.
2003-10-07 03:48:42 +00:00
Alexandre Julliard 632676b17e Moved the final process init and dependency loading to
dlls/ntdll/loader.c, (ab)using the LdrInitializeThunk entry point.
2003-10-06 21:18:51 +00:00
Alexandre Julliard 4137aecaa5 Changed LdrLoadDll to only search for the dll in the specified path,
using ntdll functions.
Moved LOAD_WITH_ALTERED_SEARCH_PATH functionality to LoadLibraryEx
where it belongs.
2003-10-02 04:58:49 +00:00
Alexandre Julliard c30cefb2d5 Store module names in Unicode in the server. 2003-09-30 01:04:19 +00:00
Alexandre Julliard f80b869939 Converted most of the loader code to Unicode. 2003-09-29 20:42:24 +00:00
Alexandre Julliard 1cb92bbeec Converted the load order code to use Unicode throughout. 2003-09-27 03:50:40 +00:00
Alexandre Julliard 74c5efeb76 Moved WINE_MODREF definition to loader.c.
Removed short module name from WINE_MODREF, Windows doesn't have it.
Rewrote LdrGetDllHandle to only use Unicode.
2003-09-25 23:55:35 +00:00
Alexandre Julliard 2052538a47 Moved loadorder support to dlls/ntdll.
Removed the --dll option and replaced it by the WINEDLLOVERRIDES
environment variable.
2003-09-25 20:33:41 +00:00
Alexandre Julliard 97ad311e71 Moved the 32-bit builtin loader and the remaining bits of the PE
loader into dlls/ntdll/loader.c.
2003-09-19 04:04:57 +00:00
Francois Gouget ae50013017 Fix the case of product and company names. 2003-09-08 19:38:45 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard 02f2813968 Renamed a few TEB fields to use the "official" names. 2003-08-27 23:14:29 +00:00
Alexandre Julliard 19b6a49845 Allocate DebugInfo field for all critical sections (based on a patch
by Alex Pasadyn).
Get rid of the Wine-specific CRITICAL_SECTION_INIT macro.
2003-08-12 23:50:54 +00:00
Alexandre Julliard 0fb0f2a306 Print status codes in hex. 2003-07-18 23:00:49 +00:00
Eric Pouech 675b75597b - removed next & prev fields from WINE_MODREF and implement instead
the three linked lists in LDR_MODULE
- added PEB_LDR_DATA structure to PEB
- removed a couple of no longer needed global & static variables
2003-07-01 03:38:56 +00:00
Alexandre Julliard b379334271 Make sure to return an error if load_dll fails because the load order
is empty.
2003-06-27 04:06:23 +00:00
Troy Rollo b58e121326 Removed FIXME when loading second exe file. 2003-06-27 04:05:27 +00:00
Alexandre Julliard c7a51eec43 Only create the 16-bit dummy module when we need really it. 2003-05-20 02:32:26 +00:00
Alexandre Julliard adb532903c Rewrote module TLS support and moved it to ntdll. 2003-05-14 19:51:14 +00:00
Robert Shearman 8e3bb615a0 Fix NULL pointer error when displaying error message about missing
forwarded export.
2003-05-13 00:28:25 +00:00
Alexandre Julliard d9bab57477 Added support for calling the TLS callback functions. 2003-05-08 04:13:26 +00:00
Alexandre Julliard f130f8099a Added possibility to filter relay traces based on the module that
called the function. Cleaned up a few traces.
2003-04-07 23:27:54 +00:00
Alexandre Julliard 0412cc55d2 Rewrote most of the import fixup code to avoid doing redundant work
for every entry point. Moved it all to dlls/ntdll/loader.c.
Various optimizations in the other loader routines.
2003-04-05 05:16:11 +00:00
Alexandre Julliard 39f73ddeaa Merged PE_InitDLL into MODULE_InitDLL.
Fixed a few traces.
2003-04-04 19:50:17 +00:00
Alexandre Julliard 5cdfa593c0 Fixed duplicate initialization of some of the wm->ldr fields. 2003-03-22 20:54:40 +00:00
Eric Pouech 69dc0d93d5 Removed no longer needed MODREF.find_export field. 2003-03-21 21:27:16 +00:00
Eric Pouech 051f87150f - implemented LdrQueryProcessModuleInformation
- rewrote VERSION_GetLinkedDllVersion() with this new function instead
  of accessing directly the modref list
2003-03-21 00:34:36 +00:00
Eric Pouech 19e050eb6f Moved WINE_MODREF.flags to WINE_MODREF.ldr.Flags, and make use of the
same flags values as Win2000.
2003-03-20 23:40:08 +00:00
Eric Pouech f94c8b85b9 Move some fields (refCount, tls_index and module) from WINE_MODREF to
LDR_MODULE.
2003-03-20 22:05:26 +00:00
Eric Pouech 9b79d698b2 Moved the module loading/unloading code and the remaining needed
static variables to ntdll.
2003-03-20 04:55:59 +00:00
Alexandre Julliard 500a2f95f7 Partially implemented LdrLock/UnlockLoaderLock. 2003-03-20 04:29:21 +00:00
Eric Pouech 84d1a8ff8c - added LDR_MODULE structure to WINE_MODREF and made dummy filling of
this structure
- implementation of LdrFindEntry
- implementation of GetModuleFileName[AW] on top of LdrFindEntry
2003-03-18 18:29:13 +00:00
Eric Pouech 32872b1a57 - implementation of LdrLoadDll out of loader/module.c
- in impacted functions, ensure that we only use ntdll functions
- for internal loading, start using NTDLL style for error reporting
- making use of new LdrLoadDll
2003-03-14 05:01:20 +00:00
Eric Pouech 1efa50e47e - implementation of LdrUnloadDll out of loader/module.c
- in impacted functions, ensure that we only use ntdll functions
- making use of new LdrUnloadDll
2003-03-14 04:00:52 +00:00
Eric Pouech f3a73ef7af - implemented LdrGetProcedureAddress and made use of it for
GetProcAddress
- implemented LdrGetDllHandle and made use of it in GetModuleHandle
- removed MODULE_DllThreadDetach from loader/module.c (should have
  been removed in a previous patch)
2003-03-06 23:41:37 +00:00
Eric Pouech 7d6096480a - added Ldr* information to include/winternl.h
- exported a few functions/global vars from module.h while we move
  code from loader/module.c to dlls/ntdll/loader.c
- implemented LdrShutdownProcess, LdrShutdownThread and
  LdrDisableThreadCalloutsForDll (and made use of them)
2003-03-04 04:36:56 +00:00
Dimitrie O. Paun 737d4be892 Move excpt.h out of include/msvcrt/ as it does not conflict with any
standard Unix header.
2002-12-12 23:34:01 +00:00
Patrik Stridvall 9c1de6de30 Moved all the content of the DDK files ntdef.h and ntddk.h to
winternl.h.
2002-09-12 22:07:02 +00:00
Alexandre Julliard becccaf168 Trap exceptions in RtlImageNtHeader. 2002-08-15 22:09:53 +00:00
Alexandre Julliard a5dea216cc Implemented the RtlImage* functions, and use them to replace the
PE_HEADER macro.
2002-08-09 19:57:38 +00:00
Alexandre Julliard 891d23e57f Added support for ordinal hint in PE_FindExportedFunction. 2002-07-24 19:04:41 +00:00
Mike McCormack 4e73595a0d - Partially implement LdrGetDllHandle.
- Implement LdrGetProcedureAddress.
2002-06-10 02:28:00 +00:00
Alexandre Julliard 0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Dmitry Timoshkov 1e55094e8a Added LdrDisableThreadCalloutsForDll. 2002-01-29 18:30:16 +00:00