Alexandre Julliard
a8d291c0c0
kernel32: Implement safe search mode for SearchPath.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-29 15:51:27 +02:00
Vincent Povirk
e8ef521c83
kernel32: Set the ProgramData environment variable.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-24 14:08:22 +09:00
Zebediah Figura
5155afd882
kernel32: Use the full path as an argument to winevdm.exe.
...
When starting a 16-bit process using CreateProcess() which resides
in a subdirectory, the directory is changed but winevdm.exe still
attempts to look for the whole path. Thus attempting to start
"install\setup.exe" will cause winevdm.exe to look for
"install\install\setup.exe", which fails.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-01 19:29:14 +02:00
Jacob Lifshay
c7ad47e9b2
kernel32: Fix improper escaping of quotes in command line.
...
Signed-off-by: Jacob Lifshay <programmerjake@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-13 11:37:02 +01:00
Dmitry Timoshkov
8de06f12dd
kernel32: Replace Peb->BeingDebugged check by CheckRemoteDebuggerPresent().
...
misctool.dll from AmiBroker intentionally sets PEB->BeingDebugged
to a random value returned by RDTSC instruction on PROCESS_ATTACH.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-10 21:39:05 +01:00
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
Vincent Povirk
0ad641af9c
kernel32: DETACHED_PROCESS doesn't affect STARTUPINFO console handles.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 11:14:25 +01:00
Vincent Povirk
b1b4de5d6b
kernel32: DETACHED_PROCESS prevents automatic std handle inheritance.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 11:13:59 +01:00
Austin English
0df25df828
kernel32: Add BaseFlushAppcompatCache stub.
...
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 16:49:18 +01:00
Huw Davies
4c146152dd
kernel32: Implement Process thread attribute lists.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-06 15:44:01 +01:00
Ken Thomases
a73045d6a0
kernel32: Overhaul the handling of argv in set_process_name().
...
This fixes several problems with the code:
* The code had been assuming that the argument strings pointed to by the argv
array are contiguous iff certain process-name-setting functions are available.
This doesn't seem reliable. Instead, test if it's true and shift the strings
if so.
However, setproctitle() is specifically documented as a preferred alternative
to the technique of overwriting the arg strings, so don't shift the strings
if that's available.
* Use the last path component, recognizing backslash as a path separator, for
setprogname() in addition to prctl(). First, setprogname() is documented as
searching for the last component itself, but it doesn't understand Windows-
style paths, so we need to help it. Second, on some platforms (e.g. macOS),
setprogname(), like prctl(), has a fairly small internal length limit (e.g.
32 characters). So, concentrate on the most meaningful part of the path.
* Remove argv[0] from argv whether or not there are any process-name-setting
functions available. This is necessary for the proper functioning of Wine,
so it must be done on all platforms. This part of the logic was lost with
commit 5a4576ee0
.
* Call all available process-name-setting functions instead of treating them
as mutually exclusive alternatives. This is also logic that was lost with
commit 5a4576ee0
.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-15 11:16:11 +09:00
Charles Davis
5a4576ee09
kernel32: Use setprogname(3) to set the program name if available.
...
Signed-off-by: Charles Davis <cdavis5x@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-22 17:37:10 +09:00
Sebastian Lackner
4ac066cdaa
kernel32: Do not inherit QT_* environment variables to Windows environment.
...
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-16 13:34:35 +09:00
Andrew Eikum
a124064ce5
ntdll: Implement SystemLogicalProcessorInformationEx.
...
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 00:49:31 +09:00
Nikolay Sivov
ae1fe69e39
kernel32: Forward GetLogicalProcessorInformationEx() to ntdll.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-05 15:08:29 +01:00
Jacek Caban
6a7363b694
kernel32: Call registry functions with full key path.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-19 23:56:39 +09:00
Jacek Caban
1130a11cce
kernel32: Added DECLSPEC_HOTPATCHABLE to WinExec function.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-13 11:53:04 +09:00
Jacek Caban
ebb320fa37
kernel32: Improved WTSGetActiveConsoleSessionId stub.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-08 21:32:49 +09:00
Jacek Caban
888d1c67bb
kernel32: Use session id stored in PEB in ProcessIdToSessionId.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-08 21:32:43 +09:00
Qian Hong
34c7a72d14
kernel32: Fix GetComputerName buffer overflow.
2015-07-22 07:27:00 +02:00
Michael Müller
d0ae2b0d3d
kernel32: Implement GetNumaProcessorNode.
2015-06-29 19:07:51 +09:00
Sebastian Lackner
5bab75166c
kernel32: Fix leak of dynamic_buffer in QueryFullProcessImageNameW (Coverity).
2015-03-17 14:52:08 +09:00
Sebastian Lackner
d48e3a0bea
kernel32: Fix file handle leak in exec_process (Coverity).
2015-03-17 14:52:08 +09:00
Austin English
fa80425242
kernel32: Add GetSystemFirmwareTable stub.
2015-01-26 12:06:04 +01:00
Hans Leidekker
b51476ad42
kernel32: Retrieve the system affinity mask from ntdll.
2015-01-21 15:30:37 +01:00
Qian Hong
bfd088dbc6
kernel32: Fixed buffer size on 64bit in IsWow64Process.
2015-01-16 20:15:32 +01:00
André Hentschel
e404d7fea3
kernel32: Set COMPUTERNAME environment variable.
2014-10-28 14:04:54 +09:00
Sebastian Lackner
d74c9e3ec2
kernel32: Implement GetProcessDEPPolicy.
2014-10-21 18:51:19 +09:00
Alexandre Julliard
ea1689e7b0
kernel32: Add detection of fake dlls when determining a binary type.
2014-08-22 12:44:24 +02:00
Austin English
fd6c5490df
kernel32: Add a stub for UnregisterApplicationRestart.
2014-06-18 16:31:14 +02:00
Alexandre Julliard
598c5816d9
kernel32: Don't allocate FLS index 0.
2014-03-28 17:46:03 +01:00
Austin English
77bd74fa25
kernel32: Improve GetNumaHighestNodeNumber stub.
2014-03-18 19:05:33 +01:00
Alexandre Julliard
7066ce0b1e
kernel32: Set correct binary type for COM and PIF files.
2014-02-12 19:15:11 +01:00
André Hentschel
8439cc9da4
kernel32: Use boolean return values in boolean functions.
2014-01-30 14:51:37 +01:00
Austin English
ea765ae005
kernel32: Quiet a noisy FIXME.
2014-01-29 14:58:35 +01:00
Alexandre Julliard
1e78c99388
kernel32: Validate the architecture of newly created processes on the server side.
2013-11-22 12:32:48 +01:00
Alexandre Julliard
f2c54dba01
kernel32: Determine the module architecture for all binary types.
2013-11-22 12:25:30 +01:00
Frédéric Delanoy
baf491b80b
kernel32: Use BOOL type where appropriate.
2013-10-03 12:54:37 +02:00
Frédéric Delanoy
6918c86544
kernel32: Use BOOL type where appropriate.
2013-09-26 21:34:13 +02:00
Alexandre Julliard
3799d55d9b
ntdll: Implement RtlExitUserProcess.
2013-07-19 12:15:15 +02:00
Alexandre Julliard
c01574d426
kernel32: Acquire the loader lock before shutting down the process.
2013-07-08 15:15:43 +02:00
Dmitry Timoshkov
bfcdf6df8e
kernel32: Terminate threads before unloading DLLs on process exit.
2013-05-17 12:29:41 +02:00
Dmitry Timoshkov
77f222505c
kernel32: Hold PEB lock during process exit.
2013-05-07 11:26:02 +02:00
Dmitry Timoshkov
37f7e7ea0c
kernel32: TerminateProcess unlike NtTerminateProcess is supposed to fail with process == 0.
2013-04-12 11:49:17 +02:00
Alexandre Julliard
9181b7e876
kernel32: Fetch the system information only once the memory limits are correct.
2013-04-04 13:28:45 +02:00
Alexandre Julliard
62f22dd4e3
kernel32: Retrieve the system info from ntdll on startup.
2013-01-09 12:15:22 +01:00
Maarten Lankhorst
7457f37e4a
ntdll: Set SO_PASSCRED before connecting to eliminate a race condition in obtaining server_pid.
2012-10-18 19:31:15 +02:00
Piotr Caban
c6ac0d0fcc
kernel32: Added GetLogicalProcessorInformation implementation.
2012-09-04 16:15:56 +02:00
Austin English
b4432a6274
kernel32: Only print a fixme once for FlushProcessWriteBuffers.
2012-05-03 11:51:38 +02:00
Austin English
80ef24b057
kernel32: Add a stub for FlushProcessWriteBuffers.
2012-05-02 20:11:54 +02:00
Alexandre Julliard
e31dd6dba1
kernel32: Only change the Unix current after exec_process to make sure it's inherited properly.
2012-01-31 13:44:40 +01:00
Alexandre Julliard
fe7652d0af
kernel32: Don't run a nonexistent builtin from CreateProcess when filename is not specified.
2011-12-14 19:35:10 +01:00
Ken Thomases
5bac5ee26e
kernel32: Use double-fork to avoid leaving zombie processes.
2011-12-01 10:27:38 +01:00
Ken Thomases
f658feb70f
kernel32: No need to reset SIGCHLD because we're not changing it anymore.
2011-12-01 10:11:06 +01:00
Alex Henrie
3aff781f63
kernel32: Output message to stderr in current Unix codepage.
...
Fixes a bug in which the command "wine /." outputs a garbled error message in languages other than English.
Supersedes "kernel32: Output message to stderr in UTF-8"
2011-10-26 12:41:34 +02:00
Marcus Meissner
615e9572f1
kernel32: Avoid shadowing variables "a", "nt" and "fd".
2011-10-24 12:34:52 +02:00
Austin English
d4ec0a19c0
kernel32: Add a stub for GetProcessDEPPolicy.
2011-10-20 11:06:22 +02:00
Francois Gouget
a2af890483
kernel32: Fix the NT path returned by QueryFullProcessImageName().
2011-10-04 15:23:03 -05:00
Alexandre Julliard
3e4a9cb4d4
kernel32: Include system headers before Windows headers.
2011-09-06 13:25:50 +02:00
Francois Gouget
3b239dbc62
kernel32: Implement K32GetProcessImageFileNameA().
2011-08-05 15:22:47 +02:00
Austin English
1344aec642
kernel32: Stub a few of the numa functions.
2011-06-28 11:57:50 -05:00
Alexandre Julliard
1b0d2330c9
kernel32: Create an orphaned process in exec_process so that all initialization is done anew in the child process.
2011-06-16 22:46:25 +02:00
Austin English
e701ca90aa
kernel32: Add a stub for RegisterApplicationRecoveryCallback.
2011-05-23 13:16:25 +02:00
Austin English
ac2c5039c9
kernel32: Add a stub for ApplicationRecoveryInProgress.
2011-05-23 13:16:25 +02:00
Austin English
d7c9723bc1
kernel32: Add a stub for ApplicationRecoveryFinished.
2011-05-23 13:16:24 +02:00
Jacek Caban
8379893f96
kernel32: Moved K32EnumProcessModules to module.c.
2011-05-12 14:28:58 +02:00
Jacek Caban
4ed94f7939
kernel32: Moved GetProcessMemoryInfo implementation to kernel32.
2011-05-12 14:28:45 +02:00
Jacek Caban
c1c70c62cb
kernel32: Moved QueryWorkingSet and QueryWorkingSetEx implementation to kernel32.
2011-05-11 14:56:49 +02:00
Jacek Caban
362a7d571e
kernel32: Moved EnumProcessModules implementation to kernel32.
2011-05-10 14:04:55 +02:00
Jacek Caban
1fa36c85bd
kernel32: Moved EnumProcesses implementation to kernel32.
2011-05-04 17:26:45 +02:00
Jacek Caban
25023c1302
psapi: Forward EmptyWorkingSet implementation to kernel32.
2011-04-19 18:29:24 +02:00
Alexandre Julliard
baa04014eb
ntdll: Implement the ProcessAffinityMask case in NtQueryInformationProcess.
2011-04-14 19:57:34 +02:00
Jacek Caban
81aa05eab6
kernel32: Moved GetProcessImageFileName implementation from psapi to kernel32.
2011-04-08 17:06:46 +02:00
Maarten Lankhorst
8b163d6fb6
kernel32: CreateProcessA should not call CreateProcessW directly.
2011-03-17 10:58:24 +01:00
Igor Egorov
b970462825
kernel32: Add stderr redirection for native Unix programs started from Windows program.
2011-02-15 17:24:26 +01:00
Henri Verbeet
4c200a2050
kernel32: Fix some memory leaks in set_wow64_environment().
2010-12-22 12:48:47 +01:00
Marcus Meissner
a601c75db3
kernel32: Fixed size to GetEnvironmentVariableW.
2010-12-17 13:26:01 +01:00
Alexandre Julliard
01af5452c5
kernel32: Update the environment variables that vary across 32-bit/64-bit/Wow64.
2010-12-14 22:48:44 +01:00
Ken Thomases
47dea9b670
loader: On Mac, reserve the process's original thread for the frameworks.
...
The frameworks expect the original thread to run its run loop, so input
sources (like distributed notifications) get processed. For example,
Core Audio on Snow Leopard doesn't track changes in the default ouput
device, such as when headphones are plugged in, without this.
2010-11-16 11:47:58 +01:00
Detlef Riekenberg
41bd5d4efa
kernel32: Add a stub for SetProcessDEPPolicy.
2010-11-12 15:49:48 +01:00
Andrew Nguyen
6d605e68f4
kernel32: Make the return type of LoadModule match the Windows SDK.
2010-10-11 17:11:28 +02:00
Austin English
e99612c4c8
kernel32: Add a stub for GetSystemDEPPolicy.
2010-09-22 12:47:39 +02:00
Eric Pouech
45ade6c2f5
ntdll: Allocate a console (without renderer) when starting a program from unix console.
2010-09-01 14:01:03 +02:00
André Hentschel
0029e64e4e
kernel32: Better describe an error.
2010-08-30 11:26:29 +02:00
Juan Lang
5e87ca772e
kernel32: Implement GetErrorMode/SetErrorMode on top of NTDLL.
2010-08-16 16:39:58 +02:00
Paul Chitescu
2e97746340
kernel32: Declare and add stubs for GetLogicalProcessorInformation(Ex).
2010-07-20 12:56:26 +02:00
Francois Gouget
7bf45b4c35
kernel32: GetProcessDword() is unused so remove it.
...
We use krnl386.exe16's implementation instead.
2010-06-24 10:35:21 +02:00
Alexandre Julliard
2b99e1c17d
kernel32: Make sure we always have a valid process title.
2010-06-08 11:53:58 +02:00
Alexandre Julliard
a10e9ba092
kernel32: Unalign the stack on process startup to work around Doom3 bug.
2010-05-28 11:20:28 +02:00
Alexandre Julliard
775e5f7b3e
kernel32: Reset stdio handles when they are closed.
2010-05-26 23:16:34 +02:00
Alexandre Julliard
f3831cf2cb
configure: Rename the 64-bit loader to wine64 and keep wine always for the 32-bit loader.
...
This provides better backwards compatibility when running with a
32-bit prefix.
2010-05-17 12:42:30 +02:00
Alexandre Julliard
ac69fcb14f
server: Check that the prefix type can support the client architecture.
2010-05-04 20:27:20 +02:00
Marcus Meissner
35dfd34a9f
kernel32: Initialize env (Coverity).
2010-03-31 11:44:30 +02:00
Alexandre Julliard
02aef1c3b8
kernel32: Increase the wineboot timeout.
2010-03-30 16:55:11 +02:00
Alexandre Julliard
be0db98a23
kernel32: Fix processing of spaces in command line for builtin exes.
2010-03-29 19:37:35 +02:00
Alexandre Julliard
808c29b908
kernel32: Add support for starting binaries in 32/64-bit mode from the other mode.
2010-03-29 17:57:15 +02:00
André Hentschel
a9a7d963c2
kernel32: Make process traces aware of 64-bit.
2010-03-25 16:08:27 +01:00
Alexandre Julliard
c7bed19c0b
kernel32: Don't try to open builtin exe files during CreateProcess, only check the path syntax.
2010-03-18 13:46:22 +01:00
Reece Dunn
1b46c0660d
kernel32/tests: Add a test case for calling TlsFree on a freed index.
2010-03-03 11:49:35 +01:00
Alexandre Julliard
6beb82e2d6
kernel32: Append the user PATH value to the system one.
2010-01-28 14:53:24 +01:00