Commit Graph

389 Commits

Author SHA1 Message Date
Alexandre Julliard 727b94842e ntdll: Add helper functions for getting and setting page protection bytes.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-05 16:21:45 +02:00
Akihiro Sagawa 74b7fcfbdb ntdll: Allow map_view() to allocate fixed memory between reserved area and non-reserved area.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-13 13:48:55 +02:00
Akihiro Sagawa 1afb369380 ntdll: Zero bits parameter must be less than 21.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-31 20:51:46 +02:00
Sebastian Lackner 9815806f16 configure: Explicitly check for sysinfo function.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-11 20:18:00 +09:00
Alexandre Julliard 32c7153fdb server: Avoid rounding mapping sizes on the server side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-27 17:03:03 +09:00
Alexandre Julliard 6f0979b983 ntdll: Implement the SectionImageInformation class of NtQuerySection.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-26 20:33:16 +09:00
Alexandre Julliard 2602df14d8 ntdll: Implement the SectionBasicInformation class of NtQuerySection.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-26 20:32:10 +09:00
Alexandre Julliard 1ddc636051 server: Store the section flags separately from the protection.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-26 14:20:02 +09:00
Michael Müller 1311c8157b ntdll: NtUnmapViewOfSection should succeed for all offsets within the mapped range.
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-19 22:03:21 +09:00
Michael Müller d0832cdf42 ntdll: Use sysinfo to report correct number of physical pages.
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-14 17:52:35 +09:00
Sebastian Lackner a697e96823 ntdll: Use close_handle instead of NtClose for internal memory management functions.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-31 15:57:33 +09:00
Alexandre Julliard fe0924625f ntdll: Add a helper to validate attributes in open calls, and use a common pattern in all calls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:11 +09:00
Alexandre Julliard 8b2ba27c86 ntdll: Add tests for kernel object names in the various open functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 00:41:30 +09:00
Alexandre Julliard 7350682aa6 server: Store the attributes in the object_attributes structure.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-16 00:05:57 +09:00
Alexandre Julliard 3198fb0c1c ntdll: Add a helper function to allocate the full object_attributes structure.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-16 00:05:57 +09:00
Sebastian Lackner 7b66f9f6b4 ntdll: Commit new guard pages in virtual_handle_stack_fault.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-30 23:16:49 +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
Francois Gouget f8a7d6ed74 Assorted spelling fixes. 2015-08-07 23:50:48 +09:00
Sebastian Lackner 6e66c12c68 ntdll: Validate SecurityCookie pointer before accessing cookie value. 2015-07-30 11:36:21 +02:00
Martin Storsjo 2a904d3bb3 ntdll: Handle partial image load config structs. 2015-07-29 21:44:03 +02:00
Erich E. Hoover e9d7cf99ad ntdll: Only set the security cookie if it has not already been set. 2015-07-14 16:43:30 +09:00
André Hentschel 7e1c886fbf ntdll: Randomize security cookie when available. 2015-07-08 16:20:06 +09:00
Sebastian Lackner d082ea3eab ntdll: Implement support for AT_ROUND_TO_PAGE flag in NtMapViewOfSection. 2015-06-26 20:35:05 +09:00
Sebastian Lackner 7a8470ea94 ntdll: NtMapViewOfSection should fail if both addr_ptr and zero_bits is set. 2015-06-26 20:35:05 +09:00
Sebastian Lackner 8ddab2c2f4 ntdll: Fix status code when NtMapViewOfSection parameter check fails. 2015-06-08 15:34:04 +09:00
Sebastian Lackner ee6a477cab ntdll: Return failure in NtProtectVirtualMemory when last argument is omitted. 2015-05-05 23:15:31 +09:00
Sebastian Lackner 5f49f07d49 ntdll: Handle write watches in virtual_uninterrupted_write_memory. 2015-03-19 17:06:29 +09:00
Francois Gouget ca1545cf17 ntdll: Remove unneeded NONAMELESSXXX directives. 2015-03-16 15:04:50 +09:00
Sebastian Lackner 6bec132c7a ntdll: Try to handle write-watches while we're on the signal stack. 2015-02-27 14:59:08 +09:00
Hans Leidekker faf70e2fbd ntdll: Fix calculation of process and thread affinity masks on systems with a large number of processors. 2015-01-21 15:31:16 +01:00
Sebastian Lackner 34b2d920b4 ntdll: Improve check_atl_thunk to prevent passing exceptions to the usermode application. 2014-10-15 11:52:06 +09:00
Sebastian Lackner e16996bb3d ntdll: reset_write_watches shouldn't remove enforced exec permissions. 2014-10-13 18:31:19 +09:00
Sebastian Lackner aa3c6111d9 ntdll: Ensure force_exec_prot is also used for views with write watch permissions. 2014-10-13 18:31:14 +09:00
Michael Müller 9e69715900 ntdll: Fix handling of page fault if a guard page and write watch is triggered at the same time. 2014-10-07 20:21:56 +02:00
Alexandre Julliard 2cef8dbcc2 ntdll: Determine the mapping type automatically from the WRITECOPY flag. 2014-05-13 12:28:58 +02:00
Jacek Caban 5ceb22714e ntdll: Use MAP_PRIVATE for copy on write mappings. 2014-05-13 12:27:32 +02:00
Jacek Caban 4792cf31c5 ntdll: Always use MAP_SHARED in NtMapViewOfSection. 2014-05-08 18:27:38 +02:00
Alexandre Julliard 693d6e48d7 ntdll: Don't wait for writes to complete in NtFlushVirtualMemory. 2014-04-24 14:39:48 +02:00
Alexandre Julliard e8eb781327 server: Check PE file architecture at mapping creation time. 2013-11-21 19:39:02 +01:00
André Hentschel 4ecc9788bd ntdll: Adjust NtAreMappedFilesTheSame to win8 behaviour. 2013-11-13 11:21:50 +01:00
Frédéric Delanoy 416930d498 ntdll: Use BOOL type where appropriate. 2013-11-04 11:03:43 +01:00
Alexandre Julliard 5c0b5f4dcb ntdll: Move the select and APC support to server.c. 2013-08-26 20:36:56 +02:00
Dmitry Timoshkov 3d759a0c69 ntdll: NtAllocateVirtualMemory should fail to commit if an address range is already committed for a memory mapped file. 2013-07-19 14:40:17 +02:00
Daniel Lehman 12f3ac4f46 ntdll: Use larger virtual heap for 64-bit. 2013-04-12 11:56:10 +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 6c02f66075 ntdll: Remove SPARC support. 2013-03-05 11:01:27 +01:00
Alexandre Julliard 99d89b347f ntdll: Add a helper function to check that a fault address lies in a known virtual memory view. 2013-02-12 19:56:19 +01:00
Alexandre Julliard 90e90e3b6a ntdll: Make the page_size variable global. 2013-01-08 16:35:30 +01:00
André Hentschel 538a0abbd7 include: Rename IMAGE_FILE_MACHINE_ARMV7 to IMAGE_FILE_MACHINE_ARMNT. 2012-08-17 10:45:17 +02:00
André Hentschel 567e44161c ntdll: Check for ARMv7 architecture dynamically when loading a PE. 2012-06-25 10:37:56 +02:00
Erich Hoover 48174b6d1e ntdll: Fix section header heap deadlock. 2012-04-06 20:10:58 +02:00
Henri Verbeet f1651e9208 ntdll: Use the copy of the section headers for applying memory protections as well in map_image(). 2012-04-04 17:22:12 +02:00
Henri Verbeet 31eff06654 ntdll: Free the correct section headers copy in map_image(). 2012-04-04 17:22:08 +02:00
Erich Hoover 3dd58d8bfb ntdll: Fix mapping sections for applications that map over the section headers. 2012-03-16 11:21:01 +01:00
Dmitry Timoshkov 3a5ee02735 ntdll: Add an access check for file mappings. 2012-01-24 18:10:31 +01:00
Dmitry Timoshkov 1d01a7ba1e kernel32: Fix access flags to page protection mapping in MapViewOfFileEx. 2012-01-17 11:54:43 +01:00
Dmitry Timoshkov 332eee4053 ntdll: Replace WRITE by WRITECOPY protection on an image section as Windows does. 2011-12-16 16:38:29 +01:00
Dmitry Timoshkov eed406e028 ntdll: Setting WRITECOPY protection on a memory-mapped file is allowed. 2011-12-16 16:38:29 +01:00
Francois Gouget c7cb3e6cb2 configure: Use errno.h instead of the non-standard sys/errno.h header. 2011-12-15 17:46:38 +01:00
Dmitry Timoshkov 517d0800df ntdll: Revert 33b0f0edff.
The tests clearly show that this commit is wrong.
2011-11-23 14:14:25 +01:00
Dmitry Timoshkov a93f86716f kernel32: Add a bunch of tests for protections accepted by VirtualAlloc, make it pass under Wine. 2011-11-08 10:19:51 +01:00
Dmitry Timoshkov 33255ee6ec ntdll: Make the VirtualProtect tests pass under Wine. 2011-11-03 13:51:56 +01:00
André Hentschel 41e188f148 ntdll: Only load ARMv7 PE images when supported by CPU. 2011-11-02 12:27:15 +01:00
André Hentschel 9afb206eaf ntdll: Try to load ARMv7 PE images on ARM. 2011-11-01 16:45:39 +01:00
Michael Stefaniuc 68f90d9697 kernel32/ntdll: Mark a variable as unused. 2011-10-28 19:10:30 +02:00
Dmitry Timoshkov 16eac43c8e ntdll: Move adding VPROT_READ for Solaris to the same place where it's done for FreeBSD. 2011-10-17 17:45:07 +02:00
Dmitry Timoshkov f7e466455d ntdll: FreeBSD needs page read access when execute access is requested. 2011-10-17 17:45:07 +02:00
Dmitry Timoshkov 988307e87b ntdll: Use STATUS_INVALID_PAGE_PROTECTION as return value for invalid protections. 2011-09-28 11:00:02 +02:00
Alexandre Julliard 33b0f0edff ntdll: Fix protection flags for uninitialized sections. 2011-09-09 12:40:44 +02:00
André Hentschel 322c2f45f8 ntdll: Fix a comment. 2011-09-08 11:21:49 +02:00
André Hentschel 8fc7419120 ntdll: Allow reading from a writable section. 2011-09-07 18:13:33 +02:00
Dmitry Timoshkov 3d81e97c75 kernel32: Add a test how PE section characteristics get mapped into memory page access, make it pass under Wine. 2011-07-20 19:23:04 +02:00
André Hentschel 4e26336eae ntdll: Improved ARM little endianess detection. 2011-05-23 11:14:53 +02:00
Piotr Caban 6b2c9505c6 ntdll: Restore stack guard and prevent stack from shrinking. 2011-04-13 14:13:57 +02:00
Alexandre Julliard 9eba2de390 ntdll: Improve the error reporting for invalid PE file architectures. 2011-02-19 14:11:05 +01:00
Alexandre Julliard 156ba4eddf ntdll: Avoid putting the virtual heap in the low 2Gb on 64-bit. 2010-12-17 13:26:00 +01:00
Alexandre Julliard e39c6d0474 ntdll: Don't worry about the DOS area on non-x86. 2010-12-16 10:25:14 +01:00
Marcus Meissner e7cb2d35f0 ntdll: Report a failed executable mmap on nonexec filesystems. 2010-12-10 17:09:34 +01:00
Hans Leidekker 71beac3219 ntdll: Don't call NtClose directly in delete_view. 2010-12-02 12:47:42 +01:00
Marcus Meissner da8c179d61 ntdll: Fixed file view mapping in regards to no-exec. 2010-11-15 13:20:09 +01:00
Marcus Meissner 2e7dc35786 ntdll: Check and fix PE header protections. 2010-11-08 18:12:57 +01:00
Alexandre Julliard 3aa6e3bd89 ntdll: Explicitly check for failure to map page 0. 2010-11-04 17:48:01 +01:00
Alexandre Julliard 3fa03e1c78 ntdll: Report memory areas in DOS memory to be free even when not reserved. 2010-11-04 17:47:29 +01:00
André Hentschel 186ada5472 ntdll: Add Support for loading ARM PEs. 2010-11-02 11:16:37 +01:00
Alexandre Julliard e7c67c0cb1 ntdll: More complete implementation of NtAreMappedFilesTheSame. 2010-10-19 16:14:40 +02:00
Alexandre Julliard 31d37b3489 ntdll: Get rid of the FILE_VIEW typedef. 2010-10-19 15:34:36 +02:00
Alexandre Julliard 5393f0a947 ntdll: Fix the protection state of writable sections. 2010-08-26 18:06:10 +02:00
Marcus Meissner 2ca5513a62 ntdll: Set correct protection flags on sections in builtin DLLs. 2010-08-24 17:22:32 +02:00
Austin English b3b55ea4fa ntdll: Sparc support for map_image(). 2010-08-24 12:22:18 +02:00
Alexandre Julliard b9a13d6d81 ntdll: Print a warning when failing to set execute permissions on a section. 2010-06-16 20:06:47 +02:00
Alexandre Julliard 903488b354 ntdll: Make the DOS area accessible even when not using it to hide bugs in broken apps. 2010-06-15 18:29:07 +02:00
Michael Stefaniuc aef5374c8b ntdll: Remove superfluous "not NULL" check for the count arg. 2010-05-19 11:17:55 +02:00
Alexandre Julliard 4ce995451e ntdll: Build the virtual_release_address_space function on all platforms. 2010-04-09 16:50:20 +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
Gerald Pfeifer 43d0720335 ntdll: Guard debugging code by #ifdef instead of plain #if. 2009-12-08 12:32:58 +01:00
Alexandre Julliard 1a3777e2dc ntdll: Reject VirtualAlloc blocks in NtUnmapViewOfSection. 2009-11-04 19:53:00 +01:00
Eric Pouech f6ceedf6dd ntdll: In SYSTEM_BASIC_INFORMATION, the active processors field refers to the affinity mask. 2009-09-22 16:47:25 +02:00
Alexandre Julliard fdf191a9e0 ntdll: Define correct address space limits for x86_64. 2009-08-27 19:47:58 +02:00
Alexandre Julliard 2be006e497 ntdll: Fix a couple of system information structures for 64-bit. 2009-08-27 19:47:49 +02:00
Alexandre Julliard c10bdbefd6 ntdll: Don't free low address space for large address aware applications.
Many games set the LARGE_ADDRESS_AWARE flag but don't pass the
appropriate flags to d3dx9 to make it cope with it.
2009-08-05 11:23:02 +02:00
Alexandre Julliard df6c65623a ntdll: Add support for the MEM_RESET flag in VirtualAlloc, with tests. 2009-07-09 19:31:36 +02:00
Alexandre Julliard 58afa8aceb ntdll: Display write watch status in virtual traces. 2009-07-09 15:21:59 +02:00
Alexandre Julliard 1ac7576d47 ntdll: Disable releasing the address space on Mac OS since dyld doesn't support this. 2009-06-29 13:21:37 +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 54ac26b7af ntdll: Try any address in map_image no matter what the failure was for a fixed address. 2009-05-27 21:17:09 +02:00
Alexandre Julliard d5d0738fb9 ntdll: Tweak the file mapping permission checks some more, with tests. 2009-05-19 21:36:05 +02:00
Francois Gouget cb9a95f560 ntdll: virtual_free_system_view() is not used anymore so remove it. 2009-05-13 12:45:37 +02:00
Alexandre Julliard 61dcca5dbf ntdll: Don't pretend that the whole address space is reserved on non-i386. 2009-04-06 12:07:33 +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 d916d98d02 ntdll: Don't fail in NtMapViewOfSection for 4Gb+ files if an explicit size is specified. 2009-02-16 11:47:32 +01:00
Alexandre Julliard 5e7f7db923 ntdll: Ignore spurious write faults for a write watch that has been reset already. 2009-01-27 11:22:06 +01:00
Alexandre Julliard 858a7efdd4 ntdll: Check buffer for access in NtRead/WriteVirtualMemory.
This also triggers page faults needed for DIB section access and write
watches.
2009-01-15 12:06:16 +01:00
Alexandre Julliard 63bff0937f ntdll: Check buffer for access in NtReadFile before performing I/O.
This also triggers page faults needed for write watches.
2009-01-15 12:05:26 +01:00
Alexandre Julliard 39d4f9e272 ntdll: Check buffer for access in NtWriteFile before performing I/O.
This also triggers page faults needed for DIB section access.
2009-01-15 12:04:24 +01:00
Alexandre Julliard 6b07ac5453 ntdll: Fix pointer cast warnings on 64-bit. 2009-01-08 17:28:45 +01:00
Alexandre Julliard c86ec6445c server: Make a couple of fields smaller in the apc_call_t/apc_result_t structures. 2008-12-30 15:22:45 +01:00
Alexandre Julliard 838803ce24 server: Make the address parameters in inter-process virtual memory calls client_ptr_t.
Add explicit padding fields in the corresponding structures.
2008-12-30 15:05:38 +01:00
Alexandre Julliard d066a9a01a server: Make the mapping base address a client_ptr_t instead of a void pointer. 2008-12-30 14:18:21 +01:00
Alexandre Julliard 8e9c156e14 server: Make the address argument for read/write_process_memory a client_ptr_t. 2008-12-30 14:11:58 +01:00
Maarten Lankhorst 72423f5f6d ntdll: Make the loader process relocations correctly for x86_64. 2008-12-26 13:42:07 +01:00
Alexandre Julliard 29d9759156 server: Use mem_size_t instead of file_pos_t for memory mapping sizes. 2008-12-17 19:25:49 +01:00
Alexandre Julliard 401f4b717a server: Make mem_size_t always 64-bit. 2008-12-17 19:25:09 +01:00
Alexandre Julliard a2089abd94 ntdll: Enforce correct protection values in virtual memory functions. 2008-12-11 14:05:42 +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
Maarten Lankhorst 269600bbed ntdll: Make 64-bits wine only able to load amd64 binaries. 2008-11-25 12:33:28 +01:00
Alexandre Julliard af8bb2e922 ntdll: Add support for virtual write watches. 2008-11-25 12:07:35 +01:00
Alexandre Julliard 81b9ca5dbd ntdll: Pass the error code to VIRTUAL_HandleFault, and allow it to ignore the exception.
Also rename it to virtual_handle_fault for consistency.
2008-11-25 12:02:16 +01:00
Alexandre Julliard aece8e0700 ntdll: Check for valid memory view size directly in VIRTUAL_FindView. 2008-11-25 11:58:50 +01:00
Alexandre Julliard f3e70ee00e ntdll: Get rid of the Wine-specific MEM_SYSTEM flag. 2008-11-18 20:14:46 +01:00
Alexandre Julliard f4eaa15aec kernel32: Moved allocation of the DOS memory area to ntdll. 2008-11-18 20:11:49 +01:00
Alexandre Julliard 28c411b627 ntdll: Get rid of the unaligned_mmap wrapper. 2008-11-17 20:34:19 +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 6c7ff61639 ntdll: Added stubs for NtGetWriteWatch and NtResetWriteWatch. 2008-11-14 11:02:15 +01:00
Alexandre Julliard 66a39678e9 ntdll: Store correct values in the various limits on all platforms instead of using 0. 2008-11-07 11:04:07 +01:00
Alexandre Julliard 1ca7b881d7 ntdll: Do not report non-reserved memory areas as free since we don't know what's in them. 2008-11-06 15:00:58 +01:00
Alexandre Julliard eb96fbf346 ntdll: Keep track of the current working set limit independently of system views that may be allocated beyond it. 2008-11-06 11:42:58 +01:00
Alexandre Julliard 5e2ed6bfe9 ntdll,server: Fixed access checks for OpenFileMapping and MapViewOfFile. 2008-11-05 20:32:32 +01:00
Alexandre Julliard f21096ad01 ntdll: Don't force anonymous file mappings to always be fully committed. 2008-11-05 12:31:49 +01:00
Alexandre Julliard cdce50f5be ntdll: Store the per-page committed status in the server for anonymous file mappings. 2008-11-05 12:31:37 +01:00
Alexandre Julliard 7e94787948 ntdll: Add a noexec flag for memory views where we don't want to force exec permission. 2008-11-04 13:16:01 +01:00
Alexandre Julliard 0b0b6c351a ntdll: Store the per-view flags in the high word of the page protection bits. 2008-11-04 13:05:37 +01:00
Alexandre Julliard 3d6313c9ce ntdll: Return more correct information for SystemBasicInformation and GetSystemInfo. 2008-11-03 13:34:13 +01:00
Alexandre Julliard 222e406deb ntdll: Create a separate heap for allocating memory views instead of using malloc. 2008-10-31 13:00:59 +01:00
Alexandre Julliard 56788cc5b6 ntdll: Use the end of the reserved area as address space limit, in case we have more than 3Gb available. 2008-10-28 13:51:36 +01:00
Alexandre Julliard eaae717ede ntdll: Make sure the last relocation contains some data. 2008-10-27 13:19:30 +01:00
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