John Reiser
adda485933
ntdll: Tell valgrind to load the .pdb debugging info for the module that was just loaded.
2008-07-25 12:16:11 +02:00
Alexandre Julliard
8e5f281276
ntdll: Add some sanity checks for invalid relocation blocks.
2008-06-30 12:51:35 +02:00
Alexandre Julliard
58d076b419
ntdll: Force execute permission again on the stack after clearing it.
2008-06-26 21:10:57 +02:00
James Hawkins
36e73d296b
ntdll: Remove NULL checks for attr, which has already been dereferenced.
2008-05-20 15:43:54 +02:00
Alexandre Julliard
ce21f2924f
ntdll: Use LdrProcessRelocationBlock to apply relocations.
...
Don't apply relocations to non page-aligned binaries.
2008-04-02 20:39:22 +02:00
Alexandre Julliard
cc33f6c8a5
ntdll: Add a guard page at the bottom of the stack and raise a stack overflow exception when hit.
2008-04-01 17:40:37 +02:00
Alexandre Julliard
061bfac076
ntdll: Add support for handling page faults caused by guard pages on the thread stack.
2008-04-01 17:37:24 +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
Dmitry Timoshkov
bf89330fb6
ntdll: Do not perform base relocation if an image is not a DLL.
2008-01-17 14:25:15 +01:00
Alexandre Julliard
a39ac0a701
ntdll: Print an error for unsupported shared writable mappings.
2008-01-03 13:20:03 +01:00
Dmitry Timoshkov
f2f3de20ac
ntdll: Initialize the APC call union to suppress valgrind warnings. Take 2.
2007-12-11 17:49:57 +01:00
Rob Shearman
f98556c119
server: Add the name length to the object_attributes structure so that other variable length data can be present after object_attributes.
2007-10-30 14:18:05 +01:00
Rob Shearman
23df453d38
server: Make create_mapping use struct object_attributes and set the security descriptor of file mapping objects.
2007-10-26 12:45:29 +02:00
Alexandre Julliard
235532ce28
server: Use the file_pos_t type for file sizes and offsets in the protocol structures.
2007-10-10 14:06:25 +02:00
Peter Oberndorfer
073dd7dde2
ntdll: NtAreMappedFilesTheSame semi stub.
2007-09-27 12:47:15 +02:00
Andrew Talbot
e3708a60b4
ntdll: Constify some variables.
2007-06-28 11:00:53 +02:00
Dmitry Timoshkov
e142779b09
ntdll: Fix compilation warnings in 64-bit mode.
2007-05-23 13:10:20 +02:00
Andrew Talbot
9fe3b60f12
ntdll: Exclude unused headers.
2007-05-15 12:19:31 +02:00
Alexandre Julliard
9d09e699d6
ntdll: Get rid of the no longer used is_current_process function.
2007-01-18 15:18:12 +01:00
Alexandre Julliard
02e2fa7798
ntdll: Implementation of inter-process NtMapViewOfSection and NtUnmapViewOfSection.
2007-01-18 15:17:51 +01:00
Alexandre Julliard
c122260b9d
ntdll: Implemented NtLockVirtualMemory and NtUnlockVirtualMemory.
2007-01-16 09:50:08 +01:00
Alexandre Julliard
5a1ad74a67
ntdll: Implementation of inter-process NtFlushVirtualMemory.
2007-01-15 22:31:07 +01:00
Alexandre Julliard
1ea968016f
ntdll: Implementation of inter-process VirtualProtectEx.
2007-01-15 22:30:04 +01:00
Alexandre Julliard
3d00239586
ntdll: Implementation of inter-process VirtualQueryEx.
2007-01-15 22:28:42 +01:00
Alexandre Julliard
7a00142bc1
ntdll: Implementation of inter-process VirtualAllocEx and VirtualFreeEx.
2007-01-15 22:27:40 +01:00
Alexandre Julliard
146fb0de02
ntdll: Make the virtual.c critical section uninterruptible by signals.
...
Based on a patch by Thomas Kho.
2007-01-12 20:15:52 +01:00
Alexandre Julliard
3c55f78f52
ntdll: Fix handling of 64-bit sizes in NtMapViewOfSection.
2007-01-12 15:01:44 +01:00
Alexandre Julliard
4cbe867a85
ntdll: Duplicate the mapping handle on the server side for NtMapViewOfSection.
2007-01-12 14:55:31 +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
9fed1205ca
ntdll: File positions should be aligned to sector boundaries in PE loader.
2006-12-21 12:34:44 +01:00
Alexandre Julliard
e5477b35f4
ntdll: Fixed typo in map_image.
2006-12-20 12:31:20 +01:00
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