Commit Graph

211 Commits

Author SHA1 Message Date
Alexandre Julliard
3dc21d387b ntdll: Map the PE header up to the specified size, and clear the rest of the page. 2006-12-13 16:04:49 +01:00
Alexandre Julliard
94ac989534 ntdll: Fix the failing loader tests. 2006-12-07 15:34:36 +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
8385f137b5 ntdll: Don't free the DOS area when a broken app passes a NULL pointer to NtFreeVirtualMemory. 2006-12-01 11:38:52 +01:00
Alexandre Julliard
83ce958793 ntdll: Store the fd type in the cache and return it in server_get_unix_fd. 2006-11-20 14:15:06 +01:00
Francois Gouget
30e44c85c8 Assorted spelling fixes. 2006-11-07 15:25:24 +01:00
Alexandre Julliard
9ddb9294da ntdll: Added a server_get_unix_fd function that avoids doing a dup() of the fd when not required. 2006-11-03 11:38:44 +01:00
Hans Leidekker
f7b0ba7aa7 ntdll: Win64 printf format warning fixes. 2006-10-18 12:35:26 +02:00
Robert Shearman
c88bbd8092 ntdll: NtAllocateVirtual with type of MEM_WRITE_WATCH fails with STATUS_NOT_SUPPORTED on Win2000 instead of STATUS_INVALID_PARAMETER. 2006-09-28 11:55:45 +02:00
Alexandre Julliard
f114ba119c ntdll: Use the right section size when setting protections.
Use the same size computation when setting section protections than
when mapping it in the first place (reported by Nicholas Miell).
2006-07-30 09:59:46 +02:00
Alexandre Julliard
6c9ade0529 ntdll: Allocate the PEB with NtAllocateVirtualMemory too. 2006-07-24 15:19:32 +02:00
Alexandre Julliard
cc297050f9 ntdll: Support memory allocations inside reserved areas. 2006-07-24 14:00:19 +02:00
Alexandre Julliard
c060cdbc14 ntdll: Propagate the MEM_TOP_DOWN flag into the map_view() function. 2006-07-24 13:59:44 +02:00
Alexandre Julliard
0c453bc7c6 ntdll: Use NtAllocateVirtualMemory to allocate all TEBs except the first one. 2006-07-21 20:20:30 +02:00
Alexandre Julliard
2cb0f43224 kernel: Added support for exec'ing a new Win32 process.
Use it to restart execution if the main binary can't be loaded because
of address space conflicts, and also for Win16/DOS support.
2006-07-19 14:12:58 +02:00
Alexandre Julliard
c79cf02fae ntdll: Make sure to not unmap anything from reserved areas
when using NtFreeVirtualMemory with the MEM_SYSTEM flag.
2006-07-13 20:47:07 +02:00
Alexandre Julliard
bb63a325d7 ntdll: Use the map_view() function to allocate TEBs, now that it supports an arbitrary granularity. 2006-07-13 20:38:31 +02:00
Alexandre Julliard
8f47bd0306 ntdll: Support for arbitrary memory allocation granularity. 2006-07-13 20:36:41 +02:00
Dmitry Timoshkov
0042ad4fc7 ntdll: Compile VIRTUAL_Dump only when somebody really needs it. 2006-06-20 20:39:17 +02:00
Francois Gouget
f248440dd4 ntdll: Use page_size instead of page_mask+1. 2006-06-16 11:31:51 +02:00
Robert Shearman
850ae994c6 ntdll: Change the test for no relocation information to use the
IMAGE_FILE_RELOCS_STRIPPED flag instead of a zero sized relocations
section.

This fixes loading of resource-only DLLs that have a load-address of 
0x400000.
2006-06-14 13:37:25 +02:00
Jonathan Ernst
360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Marcus Meissner
08c2555dd8 ntdll: Make the section with AddressOfEntryPoint in it executable. 2006-05-09 12:47:25 +02:00
Detlef Riekenberg
44aab2e23f ntdll: Added ARM architecture. 2006-04-08 15:49:24 +02:00
Alexandre Julliard
959bbf8b75 server: Get rid of alignment requirements in write_process_memory request.
All the alignment handling is now done in the write_process_memory
function inside the server.
2006-04-07 18:41:58 +02:00
Alexandre Julliard
18d7980fd8 ntdll: Limit header_size to the file size. 2006-03-27 21:29:46 +02:00
Alexandre Julliard
7bd0cdafc2 ntdll: Use PROT_NONE instead of 0. 2006-02-24 11:31:24 +01:00
Francois Gouget
f8ed165609 ntdll: Protect sys/stat.h inclusion. 2006-02-07 21:17:45 +01:00
Alexandre Julliard
eca9e4449c ntdll: Round PE header size to a page boundary for size checks. 2006-01-13 13:52:07 +01:00
Alexandre Julliard
9eae2d714d ntdll: Round up the mapping size in map_file_into_view when setting
the protection bytes.
2006-01-11 20:59:07 +01:00
Alexandre Julliard
67f29999a3 ntdll: Check file size when mapping image sections to avoid SIGBUS errors. 2006-01-03 17:39:23 +01:00
Alexandre Julliard
efffa66330 ntdll: Don't use a real guard page at the bottom of the stack.
A no-access page is enough, we can't properly raise an overflow
exception anyway.
2005-12-17 18:47:03 +01:00
Alexandre Julliard
354e7700b3 ntdll: Fixes in virtual memory protection flags.
Tweak reporting of virtual protection flags and address space limit to
yield results closer to what Windows does.
2005-12-14 12:17:59 +01:00
Alexandre Julliard
f3dad37ba2 TEB.StackLimit should not include the guard page. 2005-12-12 17:28:32 +01:00
Alexandre Julliard
59797f292e Pass specific access rights to wine_server_handle_to_fd. 2005-12-12 17:15:26 +01:00
Vitaliy Margolen
348a3d912b Move mapping (section) objects into directory name space. 2005-12-02 16:13:13 +01:00
Alexandre Julliard
cb56bdf884 Check for need to add area to the reserved list also on unmap. 2005-12-01 18:44:04 +01:00
Alexandre Julliard
e3ef6314fd Ignore the large address space flag when version is win9x. 2005-12-01 18:42:39 +01:00
Ge van Geldorp
1a1583a364 Match PSDK STATUS_* definitions. 2005-11-28 17:32:54 +01:00
Vitaliy Margolen
a996000ad5 - Send whole OBJECT_ATTRIBUTES.Attributes to the server not just an
inherit flag.
- Pass DesiredAccess to the server when creating mailslot.
2005-10-27 18:30:37 +00:00
Francois Gouget
baab789ce8 Replace the 'if (!cond) ; else code' construct with the standard 'do {
code } while (0)' construct combined with a regular 'if'.
2005-09-26 09:57:38 +00:00
Alexandre Julliard
9f859692f9 Replace DPRINTF by TRACE in a few places. 2005-09-25 15:23:21 +00:00
Alexandre Julliard
489c6b3865 Ignore relocations for unmapped pages. 2005-09-21 09:47:12 +00:00
Alexandre Julliard
06ea6e6e3f Fixed a few pointer truncation bugs for 64-bit platforms. 2005-09-16 18:54:19 +00:00
Alexandre Julliard
fb9cead92b Support arbitrary sizes for the thread signal stack, and set the
default size from the MINSIGSTKSZ constant.
2005-09-14 10:36:58 +00:00
Alexandre Julliard
261e376495 Fixed a number of pointer to integer conversions that wouldn't work
right on a 64-bit platform.
2005-09-12 15:14:06 +00:00
Alexandre Julliard
22a5332661 Added descriptions for a few more machine types. 2005-09-09 10:42:42 +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
Alexandre Julliard
0f41df1681 Use FILE_GetDeviceInfo in NtMapViewOfSection to avoid having to fetch
the file descriptor twice.
2005-08-25 10:23:23 +00:00
Alexandre Julliard
4ebd2fc0ff Better handling of conflicting section information between
SizeOfRawData and VirtualSize.
2005-08-15 14:50:06 +00:00
Alexandre Julliard
8c375c7fd4 Don't map data beyond the virtual size of a section. 2005-08-12 11:21:45 +00:00
Alexandre Julliard
9f32a5c865 Added a VIRTUAL_alloc_teb function to allocate TEBs while making sure
they don't end up above the address space limit.
2005-08-09 10:43:47 +00:00
Dmitry Timoshkov
40dd77bf5a Make VIRTUAL_HandleFault return an NTSTATUS. 2005-07-15 11:43:09 +00:00
Dmitry Timoshkov
1dc18952ae Use SIZE_T type for size variables in NTDLL when appropriate. 2005-07-15 10:01:30 +00:00
Felix Nawothnig
db6a238f28 Replace stubs for information classes in NtQueryVirtualMemory and
NtQueryInformationProcess by more descriptive messages.
2005-07-05 14:05:58 +00:00
Vitaliy Margolen
b2e74c3047 Load all dll sections no matter what attributes say. 2005-07-02 10:50:42 +00:00
Mike McCormack
6b636e3e7b Use RTL_CRITICAL_SECTION instead of CRITICAL_SECTION. 2005-06-25 18:00:57 +00:00
Alexandre Julliard
f724399f60 Add PAGE_GUARD flag to the returned protection of guard pages. 2005-06-21 20:23:02 +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
bd000a0203 Removed some unnecessary inclusions of thread.h 2005-06-06 20:13:08 +00:00
Mike McCormack
cc4ed1322a Use LIST_FOR_EACH_ENTRY in virtual memory code. 2005-05-23 09:51:02 +00:00
Dimi Paun
88fe1ff962 Make the argument comments out-of-line. 2005-05-18 09:45:12 +00:00
Alexandre Julliard
3b843d3e7d Remove all traces of the VIRTUAL_SetFaultHandler support. 2005-04-20 16:26:23 +00:00
Troy Rollo
95fe6abcb7 Fix SEGVs in NtCreateSection and NtMapViewOfSection. 2005-04-19 10:31:28 +00:00
Ivan Leo Puoti
d3edafe1e2 Replace GetCurrentProcess() with NtCurrentProcess() in ntdll. 2005-02-22 19:33:50 +00:00
Gerald Pfeifer
57e00da29e Fix format string in NtQueryVirtualMemory(). 2005-01-24 11:25:41 +00:00
Hans Leidekker
fccfcbf7ba Stub implementations for EnumPageFiles{A,W}, GetProcessImageFileName{A,W}.
Implement GetPerformanceInfo, GetProcessMemoryInfo on top of
NtQueryInformationProcess and GetWsChanges, QueryWorkingSet{,Ex} on
top of NtQueryVirtualMemory.
2005-01-20 19:59:48 +00:00
Alexandre Julliard
646ab89f0a Support mapping non page-aligned binaries for SEC_IMAGE mappings. 2005-01-04 12:04:06 +00:00
Peter Chapman
505dfdefb5 Fix up several inline assembler blocks so that they produce correct
code with the -fomit-frame-pointer gcc flag.
2004-12-02 18:19:25 +00:00
Robert Shearman
2050591370 Fix NtAllocateVirtualMemory declaration and fix users of the
function.
2004-10-11 20:59:06 +00:00
Alexander Yaworsky
aadffd1f35 Moved TRACEs to the beginning of functions. 2004-09-22 04:03:10 +00:00
Alexander Yaworsky
8657ad8704 Make RtlCreateUserThread fail if process handle is not for the current
process.
2004-09-21 00:23:50 +00:00
Alexandre Julliard
6a27b48895 Fd type is no longer used, get rid of it. 2004-08-18 00:04:58 +00:00
Alexandre Julliard
38affc4097 We no longer need to make the import directory writable, the loader
takes care of that now.
2004-06-22 03:02:35 +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
dc4d05690e Don't rely on the reserved area list being empty in reserve_area,
since the preloader will need to add things to the list before
startup.
2004-05-28 03:48:09 +00:00
Alexandre Julliard
94d74b5fed Added support for managing reserved memory areas in libwine and ntdll.
Try to reserve everything above 0x80000000 on startup.
2004-05-25 01:29:24 +00:00
Alexandre Julliard
eb04fd22f8 Converted the memory views list to use the standard functions from
wine/list.h.
Restructured some functions to always return proper NT status codes.
A couple of optimizations.
Added a few tests for file mappings.
2004-05-21 20:58:44 +00:00
Alexandre Julliard
670711ef25 Handle file mappings on removable media entirely inside ntdll. 2004-04-06 23:13:47 +00:00
Alexandre Julliard
a2ce4ea325 Fixed some potential races in the handling of the view structures. 2004-04-06 20:16:51 +00:00
Mike Hearn
4d2cfee1fa Improve message given on image map failure. 2004-03-15 20:06:50 +00:00
Dmitry Timoshkov
cba227bcec Write section access also assumes read access. 2004-02-17 20:22:43 +00:00
Dmitry Timoshkov
fcc2fe18a4 Avoid double checking free type flags in NtFreeVirtualMemory. 2004-02-11 23:56:52 +00:00
Alexandre Julliard
2ad864dc87 Don't request PROT_EXEC permissions when mapping an image file to
avoid problems on noexec filesystems with kernel 2.6.
2004-02-11 06:37:49 +00:00
Dmitry Timoshkov
f323d5d31b Add a test case for Virtual* APIs, fix a few bugs discovered by it. 2004-02-09 20:58:16 +00:00
Alexandre Julliard
36241ceda4 Added memory constraint to avoid miscompilation of the unaligned_mmap
function (with help from Paul Streitman).
2004-01-30 22:59:34 +00:00
Ge van Geldorp
399901e054 Rename LARGE_INTEGER and ULARGE_INTEGER members "s" to "u" to conform
with PSDK.
2004-01-23 01:51:33 +00:00
Alexandre Julliard
94d5531e6f Check for overlapping memory views and delete the offending view if
necessary, to ensure we never have two views covering the same
address.
2004-01-16 04:52:17 +00:00
Alexandre Julliard
af542075e7 Don't use constructors for ntdll and kernel32 initialization. 2004-01-07 04:50:11 +00:00
Dimitrie O. Paun
2eaefbd1a4 Move content of global.h into the appropriate private headers. 2003-12-08 21:58:55 +00:00
Alexandre Julliard
f3f435ffa1 Added wine_server_release_fd function to release the fd returned by
wine_server_handle_to_fd. Fixed a couple of potential fd leaks.
2003-12-01 23:01:12 +00:00
Alexandre Julliard
dfe1df6408 Make sure the protection flags on the memory view of the PE header
match the actual mmap protection.
2003-11-11 22:06:59 +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
7fcc737faa Fixed type and protection values returned by NtQueryVirtualMemory to
be closer to what Windows does.
Allow using MEM_SYSTEM without MEM_RESERVE to avoid 64k alignment.
Use pread instead of lseek+read when faking mmap.
2003-11-03 22:21:55 +00:00
Alexandre Julliard
8824c38e9e Simplified signal stack allocation a bit, and avoid allocating it on
non-i386 platforms.
2003-10-22 03:26:53 +00:00
Pavel Roskin
3ec73af37f Include ntdll_misc.h to get the GetCurrentProcess/ThreadId macros. 2003-10-08 19:11:08 +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
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
7df1b9e03a Start using the exported TEB structure from winternl.h where
possible.
2003-08-28 19:57:35 +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
4f4b980c1e Implemented NtRead/WriteVirtualMemory. 2003-07-08 21:18:45 +00:00
Eric Pouech
415dfa63e5 Fixed section mapping in PE loading when both
IMAGE_SCN_CNT_UNINITIALIZED_DATA and IMAGE_SCN_CNT_INITIALIZED_DATA
are set.
2003-06-21 02:02:27 +00:00
Alexandre Julliard
c808e67da1 Fixed wrong file offset used when mapping the import directory from a
shared section.
2003-05-08 03:50:32 +00:00
Alexandre Julliard
54f59e5005 Added comment about why changing ADDRESS_SPACE_LIMIT is wrong. 2003-05-06 18:52:43 +00:00
Dimitrie O. Paun
297f3d898d Define NONAMELESS{STRUCT,UNION} explicitly in the files that need them. 2003-01-07 20:36:20 +00:00
Andrew John Hughes
ed800c69c8 Build ntdll with -DSTRICT. 2002-11-21 03:45:01 +00:00
Alexandre Julliard
ac36f95082 Disable address space limit check on non-i386 platforms. 2002-11-06 22:33:17 +00:00
Alexandre Julliard
341b7dceb4 Implemented the ntdll virtual memory functions, and made the kernel
functions use them.
2002-09-17 18:54:42 +00:00