Commit Graph

193 Commits

Author SHA1 Message Date
Alexandre Julliard 57f05e1913 Converted a few more server requests to the new mechanism. 2000-10-15 00:40:25 +00:00
Alexandre Julliard aef9a36059 Use special environment variables to transmit the cwd of the various
drives to child processes (based on a patch by Andreas Mohr).
2000-10-03 04:19:16 +00:00
Andreas Mohr c941effc24 Make GetTickCount not use the whole Unix epoch (since 1970) any more,
since that crashed several games or caused problems with them as they
aren't used to a high Windows uptime of more than 24.9 days.
2000-09-22 22:37:56 +00:00
Andreas Mohr 20cd9356a8 - fixes debugger output
- get rid of wrong comments
- fix comments
- .spec spelling fix
- improve warning message
2000-09-12 23:40:40 +00:00
Andreas Mohr 9714152e01 Avoid crash on empty command-line. 2000-09-02 23:18:16 +00:00
Alexandre Julliard 92643003cf Converted a lot of server requests to the new exception handling
mechanism.
2000-08-31 01:59:51 +00:00
Alexandre Julliard 9c2370bd75 Added exception handling wrapper to a number of server requests.
Changed a few requests to use the new vararg mechanism.
2000-08-30 00:00:48 +00:00
Alexandre Julliard 973ce4a088 Moved TASK_Create call to KERNEL initialisation routine.
Clear last error code before calling main entry point (reported by
James Juran).
2000-08-25 22:02:14 +00:00
Andreas Mohr d398aacfeb - don't return FALSE for system process changes
- SHUTDOWN_NORETRY is 1 and has to be in winbase.h
2000-08-21 20:17:56 +00:00
Alexandre Julliard 52900c818f Make PDB, ENVDB and STARTUPINFO global variables.
Added 'module' field in PDB, and removed Wine-specific fields.
2000-08-09 22:33:42 +00:00
Alexandre Julliard 081ee94117 - Fixed resource functions to work directly from the HMODULE instead of
requiring a modref.
- Attempted to get LOAD_LIBRARY_AS_DATAFILE right (based on patches by
  Eric Pouech and Dusan Lacko).
- Simplified modref structure and handling.
2000-08-07 04:12:41 +00:00
Alexandre Julliard 6c9d83aa4c Added imports of user32/gdi32/kernel32 wherever necessary. 2000-08-03 00:04:24 +00:00
Ove Kaaven 128843046d DOS binary support has been restored. 2000-07-31 21:01:46 +00:00
Alexandre Julliard a3e0cfc5fb Get full path of argv[0] before we change directories.
Make sure process names are long path names.
Cleaned up initialisation a bit.
2000-07-16 18:21:34 +00:00
Marcus Meissner dad709122a Transmit current directory settings to newly created processes. 2000-07-16 15:42:22 +00:00
Alexandre Julliard 596921da0c Make sure the cmdline passed to CreateProcessA is writeable (thanks to
Peter Ganten <peter@ganten.org>).
2000-06-24 20:53:47 +00:00
Juergen Schmied 79d850f2d7 - implemented Get/SetThreadLocale
- added comment about OleErrorInfo field in TEB
2000-06-12 21:56:02 +00:00
Alexandre Julliard a37dec0c7e Pass the main exe name in the CREATE_PROCESS debug event. 2000-06-08 00:57:24 +00:00
Alexandre Julliard 42cc2bdf46 Setup signal handling and exceptions only after REQ_INIT_PROCESS_DONE
has been sent, to avoid deadlocking the debugger.
2000-06-07 03:49:41 +00:00
Ulrich Weigand 7e85ea7c86 Moved stack switch handling (large stack) to sysdeps.c
Enable exception dispatch while on large stack.
2000-06-04 01:35:43 +00:00
Alexandre Julliard 7fe09bce86 Moved kernel initialization to kernel_main.c 2000-06-03 04:49:40 +00:00
Alexandre Julliard c23b1ee3da Make sure main_exe_name is a DOS filename (thanks to Uwe Bonnes). 2000-06-01 22:48:39 +00:00
Alexandre Julliard c5e433a3a6 Moved idle event handling to the server. 2000-05-30 19:48:18 +00:00
Alexandre Julliard c192ba2468 Exec a separate wine binary for every win32 process so that they run
in separate address spaces.
Run 16-bit tasks as Win32 threads, not processes.
2000-05-29 21:25:10 +00:00
Alexandre Julliard d27624be16 Store process file name in startup info.
Fixed exe_file handling.
2000-05-03 18:42:40 +00:00
Alexandre Julliard 8c21dfcf0f Setup the initial thread %fs from a constructor. 2000-05-01 21:21:31 +00:00
Alexandre Julliard 5b4f3e8d6d Rewrote Unix process launching to allow passing startup information to
Winelib apps. Improved handling of execve() failures.
2000-05-01 16:24:22 +00:00
Alexandre Julliard b44595283f Improved Winelib apps initialisation code. No longer need to link
winestub.o with Winelib apps.
2000-04-15 21:00:55 +00:00
Alexandre Julliard 6a72dc52bd Load done event now created by the server. 2000-04-14 13:42:00 +00:00
Alexandre Julliard 3ef9322915 Cleanup thread stack allocation. Use a single VirtualAlloc for TEB and
the various stacks.
2000-04-13 17:03:22 +00:00
Alexandre Julliard 114830e8a9 Made GetProcessHeap(), GetCurrentProcessId(), GetCurrentThread() and
GetCurrentProcess() inline.
2000-04-11 20:01:59 +00:00
Alexandre Julliard 11342151c9 Temporary hack to share handles between processes sharing the same
address space.
2000-04-08 21:02:47 +00:00
Alexandre Julliard 0e37eaaca8 Commented out exit() call on ExitProcess for now. 2000-03-30 19:31:02 +00:00
Alexandre Julliard 9a0e28f153 Fixed a couple of file descriptor leaks.
Always call USER signal proc in the right context.
Cleaned up THREAD_Create.
2000-03-25 19:14:37 +00:00
Alexandre Julliard 12f29b5076 Have threads and processes exit more cleanly whenever possible. 2000-03-17 15:16:57 +00:00
Alexandre Julliard c2ec36877a Removed PROCESS_IsCurrent(). 2000-03-10 22:21:07 +00:00
Alexandre Julliard 05f0b71bb3 Store the list of loaded dlls in the server, and generate debug events
internally.
2000-03-09 18:18:41 +00:00
Alexandre Julliard 00641d5b1c Removed PDB32_DEBUGGED flag and send all debug events unconditionally.
Implemented IsDebuggerPresent().
2000-03-08 16:41:37 +00:00
Alexandre Julliard ff81d78708 Generate CREATE_PROCESS/THREAD debug events internally in the server. 2000-03-08 12:01:30 +00:00
Patrik Stridvall 0ee98cc39f Fixed ANSI C violations. 2000-02-26 13:17:55 +00:00
Andreas Mohr 296186a85f Added FIXME comment for entry point parameter. 2000-02-20 19:18:30 +00:00
Alexandre Julliard 67a24c8cfb Store the handle of the process exe file in the server.
Removed PROCESS_Initial().
2000-02-18 21:54:32 +00:00
Dave Pickles 717bf7e9ea Added definition for STILL_ACTIVE. 2000-02-13 16:04:14 +00:00
Ulrich Weigand f3bfa3a4b0 Mark initial process as 32-bit for WineLib apps.
Use teb->tibflags instead of teb->flags (for Win95 USER32 compatibility).
Removed unused thread event.
2000-01-30 21:16:06 +00:00
Andreas Mohr 8cd93514f0 - add some documentation items
- fix some spelling
- fix some warnings
2000-01-29 21:12:58 +00:00
Alexandre Julliard 0a7c1f6c5b Implemented GetThreadSelectorEntry through the server. 2000-01-27 02:54:17 +00:00
Alexandre Julliard 2fe57779fb Made the server listen for new clients on a Unix socket in
$HOME/.wine. Newly started wine processes now attach to an existing
server if one is running.
2000-01-25 01:40:27 +00:00
Peter Ganten 6619f5a71a Implemented WaitForInputIdle. 2000-01-01 22:38:20 +00:00
Andreas Mohr 7fb732e597 Fixed compiler warnings. 1999-12-12 00:47:51 +00:00
Ulrich Weigand 89a79d21bf Bugfix: Show main window if CreateProcess was called without the
STARTF_USESHOWWINDOW flag.
1999-12-10 03:34:21 +00:00
Dimitrie O. Paun dd03cc19fd Make use of the DEFAULT_DEBUG_CHANNEL where appropriate.
Use the default version of FIXME, ERR, WARN, TRACE for the default
channel.
1999-12-08 03:56:23 +00:00
Ulrich Weigand 0106f85e5f Delay sending debug events until process initialization is complete. 1999-12-08 03:28:14 +00:00
Ulrich Weigand 979000e038 Call 16-bit instead of 32-bit UserSignalProc entry point.
Don't load USER32.DLL unless requested by the program.
Bugfix: Pass the correct thread ID to UserSignalProc.
1999-12-05 02:48:53 +00:00
Ulrich Weigand 237e8e95b0 Fixed 32-bit module name handling to conform better to Win9x.
Removed OFSTRUCT passing during process creation sequence.
Bugfix: don't set exe_modref when LOAD_LIBRARY_AS_DATAFILE is set.
1999-12-04 04:04:58 +00:00
Alexandre Julliard d083a7bd0c Fixed DEBUG_ONLY_THIS_PROCESS again (thanks to Ulrich Weigand). 1999-11-29 02:10:56 +00:00
Niels Kristian Bech Jensen 1d5bc469cc Removed extra #include statements. 1999-11-21 02:14:36 +00:00
Alexandre Julliard 31670003bc Fixed meaning of DEBUG_ONLY_THIS_PROCESS flag. 1999-11-21 01:06:29 +00:00
Alexandre Julliard eef7025ef8 Added support for WriteProcessMemory through the server. 1999-11-13 19:54:54 +00:00
Alexandre Julliard 8b8828f578 Added support for ReadProcessMemory through the server. 1999-11-12 21:39:14 +00:00
Alexandre Julliard ec7bb2391d Added support for CREATE_SUSPENDED flag in CreateProcess. 1999-11-12 03:35:25 +00:00
Ulrich Weigand 8a64b83eb6 Bugfix: don't call ExitProcess() before SYSLEVEL_Init(). 1999-10-23 14:15:33 +00:00
Alexandre Julliard 3d06d20bab Moved all signal support to a new platform-specific file.
Make use of the per-thread signal stack (Juergen Lock).
Fixed %fs in signal handler for non FS_sig case (Ulrich Weigand).
1999-09-27 10:58:45 +00:00
Ulrich Weigand 4d550350f3 Bugfix: Install task-entry breakpoint *after* EXE module is initialized. 1999-07-30 18:05:07 +00:00
Ulrich Weigand fbea530884 On NE process creation, move major part of NE EXE module loading and
NE instance creation into the child process.
1999-07-03 12:26:29 +00:00
Alexandre Julliard ebe29ef376 Further server optimizations:
- merged request and reply structures
- build requests directly into the buffer to avoid a copy
1999-06-26 08:43:26 +00:00
Ulrich Weigand 26c21f1f57 Load USER32.DLL before calling UserSignalProc. 1999-06-22 19:12:14 +00:00
Alexandre Julliard 0a860a01f9 Merged THDB and TEB structures.
Made SetLastError(), GetCurrentThreadId() and PROCESS_Current() inline.
1999-06-22 11:43:42 +00:00
Ulrich Weigand 23f4b09cc3 Removed broken hack to support shared DLLs (e.g. USER32.DLL) and
replaced it by a somewhat less broken hack :-/
1999-06-13 08:34:42 +00:00
Andreas Mohr cd3278be3f Rearrange winver detection code and cache the winver value we
determined in the PDB to speed up.
1999-06-12 14:46:54 +00:00
Guy Albertelli 0e65b38ff3 Add new "walk" command options to list processes and modref's. 1999-06-12 10:49:36 +00:00
Alexandre Julliard 1aa2641636 Use the normal environment routines to build the env db of the initial
process.
1999-06-11 18:33:46 +00:00
Ulrich Weigand ed49003188 16-bit scheduler reorganized: run all tasks in their own thread.
Process creation sequence adapted to new scheduler.
1999-06-06 14:47:50 +00:00
Alexandre Julliard 54a39e253c Got rid of THREAD_InitDone.
Made THREAD_Current() inline.
Moved server tid into TEB.
1999-05-29 14:27:26 +00:00
Alexandre Julliard 463fd4ffb1 Moved remaining initialisations to the new process context.
Shuffled things around a bit in PROCESS_Start to avoid deadlocks.
Changed PROCESS_CallUserSignalProc to avoid accessing another process
address space.
1999-05-24 14:44:52 +00:00
Ulrich Weigand a1957c4d64 Wait until child initialized before returning from PROCESS_Create. 1999-05-24 08:10:46 +00:00
Alexandre Julliard d131a17ee0 Use the new debug functions to send debug events at appropriate places.
Pass the process creation flags to PROCESS_Create.
1999-05-23 20:02:04 +00:00
Ulrich Weigand 158f00ed8d Bugfix: dwFlags must describe target process in UserSignalProc. 1999-05-23 09:31:49 +00:00
Ulrich Weigand c319c669fb Added ExitKernel16 (replacing USER_ExitWindows), ExitProcess16, and
MapProcessHandle; stub for BUNNY_351.
1999-05-22 16:18:36 +00:00
Ulrich Weigand 1c971e3364 Some initialization sequence bugfixes:
- Initialize process crst for 16-bit processes.
- Don't crash due to uninitialized stack frames in WineLib.
- Map system DLLs before calling UserSignalProc.
- Signal USIG_PROCESS_CREATE only *after* the env_db is filled.
1999-05-08 09:58:47 +00:00
Alexandre Julliard 64ae5a57cf Moved a few more initialisations to the new process context. 1999-05-02 19:10:57 +00:00
Alexandre Julliard e8c6a08cd9 Converted to the new debugging interface (done with the help of the
script written by Patrik Stridvall).
Some changes to the initialisation sequence for 32-bit processes.
1999-05-02 14:33:41 +00:00
Ulrich Weigand 586793ffd8 Initialize process critical section in the correct process context. 1999-04-25 11:04:45 +00:00
Patrik Stridvall b4b9fae671 New debug scheme with explicit debug channels declaration. 1999-04-19 14:56:29 +00:00
Bertho Stultiens c1d1cfe976 Reorganization of the loader to correctly load and free libraries and
implementation of load order to load different types of libraries.
1999-04-18 12:14:06 +00:00
Kevin Holbrook a8f8bef098 Fix ambiguous else warning. 1999-04-18 09:33:20 +00:00
Ulrich Weigand 9e696f8906 Non-functional PROCESS_Suspend/ResumeOtherThreads removed. 1999-04-11 17:11:09 +00:00
Ulrich Weigand 2e658768dc Send USIG_PROCESS_CREATE signal.
Bugfix: GetProcessDword offset -8 should return parent process ID.
1999-04-11 12:06:04 +00:00
Ulrich Weigand 8139c30125 Implemented PROCESS_CallUserSignalProc().
Send USER signals at various appropriate places.
Moved [GS]etProcessDword() to scheduler/process.c.
1999-04-01 11:43:05 +00:00
Ulrich Weigand e469a583ca Fixed sequence of DLL_PROCESS_DETACH notification calls.
Moved PE_MODREF flags to WINE_MODREF level.
Better handling of LoadLibraryEx flags.
PE_InitTls() changed to work only on the current thread.
1999-03-27 16:45:57 +00:00
Alexandre Julliard 1c40024b15 Added cmd line in new_process request. 1999-03-27 16:21:05 +00:00
Alexandre Julliard 875c4b3c61 Added server pid and tid in init_thread request, and use them in
CLIENT_InitThread.
1999-03-23 14:09:41 +00:00
Ulrich Weigand 93b23d746d Run Win32 processes in their own threads.
Process exit sequence adapted.
1999-03-22 10:35:44 +00:00
Alexandre Julliard f016752b45 Changed process initialisation to use the new server requests.
Started to move the process init to the right context, not finished yet.
1999-03-21 19:26:25 +00:00
Ulrich Weigand 4526f2ec66 Pass new arguments (suspend/inherit) to the server. 1999-03-16 16:28:59 +00:00
Alexandre Julliard 96c08d817c Use server handles directly for Win32 handles. Removed use of K32OBJ. 1999-02-28 13:27:56 +00:00
Alexandre Julliard 8feb3bc177 Process and thread id now use the server-side id instead of an
obfuscated pointer.
1999-02-28 12:25:03 +00:00
Ulrich Weigand 6e0d38603e Process creation sequence reorganized:
- Removed instance data segment for all but NE modules.
- Check binary type in CreateProcess before loading module.
- Unix process creation moved from WinExec to CreateProcess.
- Bugfix: fill in thdb->teb.htask16 member correctly.
1999-02-28 11:14:32 +00:00
Alexandre Julliard a396029270 Large-scale renaming of all Win32 functions and types to use the
standard Windows names.
1999-02-26 11:11:13 +00:00
Alexandre Julliard 214399f283 Changed initial process creation to avoid memory allocations.
Removed a few unused fields in PDB and THDB.
1999-02-21 18:35:27 +00:00
Marcus Meissner 317af320cf Optimized include/*.h: (recursively) include all headers needed by
this .h file, but only those. Necessary fixes to a lot of .c files,
started optimizing "windows.h" away from some of them. Moved
GetCurrentTask prototype to wine/winbase16.h.
1999-02-17 13:51:06 +00:00