Commit Graph

238 Commits

Author SHA1 Message Date
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