Commit Graph

171 Commits (6c9b097fae9a4466c076cd234840b24a57764d32)

Author SHA1 Message Date
Alexandre Julliard 8ae5761dd0 Fixed string type in named pipe requests. 2001-12-31 22:26:51 +00:00
Mike McCormack 6f011c0847 - move async activation into the server
- implement async queues
2001-12-20 00:07:05 +00:00
Alexandre Julliard 9caa71eef4 Redesign of the server communication protocol to allow arbitrary sized
data to be exchanged.
Split request and reply structures to make backwards compatibility
easier.
Moved many console functions to dlls/kernel, added code page support,
changed a few requests to behave properly with the new protocol.
2001-11-30 18:46:42 +00:00
Eric Pouech 0b83d4cbc6 New console code based on Win32 windows. 2001-11-23 23:04:58 +00:00
Francois Gouget 6e04f591f6 Fix the Solaris and FreeBSD compilation errors introduced by the
recent winsock update.
2001-11-19 02:23:22 +00:00
Alexandre Julliard 805bdc53e8 Store the window caption text in the server.
Maintain a paint count separately for each window.
2001-11-13 22:23:48 +00:00
Mike McCormack 309ed4e1f1 Make ConnectNamedPipe work in overlapped mode. 2001-11-07 20:14:45 +00:00
Ove Kaaven 708a846a88 Save a disk file's drive type in the server object. 2001-10-24 00:23:25 +00:00
Alexandre Julliard ddc3317b7a Store in the server all the window information accessible with
Get/SetWindowLong.
2001-10-22 19:08:33 +00:00
Alexandre Julliard 0d50965a13 Added requests to store window rectangles in the server. 2001-10-16 21:55:37 +00:00
Francois Gouget e5ddd26dd7 When including config.h, include it first. 2001-10-14 16:18:52 +00:00
Alexandre Julliard 7a2017dd65 Store window properties in the server. Moved property.c to dlls/user. 2001-10-12 19:10:26 +00:00
Alexandre Julliard d8a8c1131d Added atom_t type for atoms to make sure we use the same type
everywhere. Handle MIN_STR_ATOM offset in the server.
2001-10-12 18:45:29 +00:00
Alexandre Julliard 003f02b733 Removed the cleanup_window_queue request. 2001-10-11 20:50:10 +00:00
Alexandre Julliard 844ceb98ba Store window class atom in the server.
Keep unlinked windows on a separate list.
Implemented inter-process FindWindow().
2001-10-09 23:26:40 +00:00
Mike McCormack 568c67e173 Make serial fd blocking mode depend on FILE_FLAG_OVERLAPPED. 2001-10-08 20:40:57 +00:00
Mike McCormack ff58be5c7f Fetch a handle type in FILE_GetUnixHandle. 2001-10-04 16:18:15 +00:00
Alexandre Julliard 7695d69046 A couple of optimizations to avoid some server calls in WIN_FindWndPtr
and related functions.
2001-09-24 01:19:59 +00:00
Alexandre Julliard a09da0cbbd Added proper support for storing window parents in the server.
Added a few requests to query the window hierarchy.
2001-09-21 21:08:40 +00:00
Alexandre Julliard 1a66d226eb Added global management of user handles in the server.
Very preliminary support for shared window handles.
2001-08-28 18:44:52 +00:00
Mike McCormack f2e7ce7f6a Implemented GetNamedPipeInfo. 2001-08-27 19:03:42 +00:00
Mike McCormack bf55457f24 Implement WaitNamedPipe and DisconnectNamedPipe.
Add a state for each pipe handle in the server.
Create a socket on when the pipe is opened, not before.
2001-08-23 23:29:20 +00:00
Alexandre Julliard d253c58b1b Rewrote most of SendMessage/PeekMessage.
Implemented inter-process messaging.
Moved most message routines to dlls/user, and split off 16-bit
routines to a separate file.
2001-08-07 19:19:08 +00:00
Mike McCormack de7c3003e2 Start implementing named pipes. 2001-07-10 19:16:49 +00:00
Alexandre Julliard 4b0343dc5f Moved queue paint count to the server. Removed a few no longer used
routines.
2001-06-20 22:55:31 +00:00
Alexandre Julliard 838d65aebe Moved hardware message queue handling to the server. 2001-06-19 19:16:41 +00:00
Alexandre Julliard 51ab43bd13 Moved the major part of message queue and window timer handling into
the server.
Implemented MsgWaitForMultipleObjectsEx.
2001-05-18 22:51:56 +00:00
Michael McCormack 1c32a46d5a Use poll() on the client-side during server waits to implement
overlapped I/O.
2001-03-22 20:09:34 +00:00
Alexandre Julliard a5a872efca Use the new send_fd mechanism for the set_console_fd server request. 2001-03-22 19:35:27 +00:00
Jeff Garzik 3ea0c073f8 Warning fixes. 2001-03-21 20:31:26 +00:00
Alexandre Julliard e5dedb1906 Added support for nested server waits (to allow waiting in signal
handlers).
2001-03-08 01:16:41 +00:00
Alexandre Julliard 8859d77279 Create the server pipes on the client side and transfer them to the
server on thread creation.
Use a single per-process socket instead of one per thread for
transferring file handles between client and server.
2001-03-01 22:13:49 +00:00
Alexandre Julliard f52424055f New mechanism to transfer file descriptors from client to server. 2001-02-28 21:45:23 +00:00
Alexandre Julliard d90e964cee Added separate server pipe to wait on blocking server calls.
Send the complete request/reply through the request fifo instead of
just a dummy byte.
Convert error status to text in server reply tracing.
2001-02-21 04:21:50 +00:00
Alexandre Julliard 5f195f8c01 Small server protocol cleanups. 2001-02-20 23:45:07 +00:00
Alexandre Julliard a4bc5a2138 Pass the stdin/stdout handles on startup to use as console (based on a
patch by Eric Pouech).
2001-02-16 19:08:19 +00:00
Alexandre Julliard e939eae00b Made exception_event_request non-blocking, and added
get_exception_status to retrieve the exception result returned by the
debugger.
2001-01-26 20:45:41 +00:00
Alexandre Julliard e9936d96e1 Changed wait_process and wait_debug_event requests to never block;
waiting is always done through WaitForSingleObject().
2001-01-26 00:22:26 +00:00
Alexandre Julliard 2362380b64 Added separate queue for "system" APCs that get called even when the
thread is not in an alertable state.
Specify the select_request timeout as absolute value so that we can
restart the request when interrupted.
2001-01-06 01:48:51 +00:00
Alexandre Julliard ad29b90d08 Send the exe file handle in init_process_done request. 2001-01-05 22:24:15 +00:00
Alexandre Julliard 8081e5a1e5 Added handle_t type to server interface so that we can make handles
pointers later on.
Always use 0 to signal invalid handle in server requests.
2001-01-05 04:08:07 +00:00
Alexandre Julliard d549f6909e Use a separate FIFO pair for server requests that don't need to pass a
file descriptor.
Associate file descriptors with handles on the server side so that we
don't need to pass the fd every time the client wants to use it.
2000-12-22 02:04:15 +00:00
Alexandre Julliard 1ab243bac1 Merged the get_read_fd and get_write_fd requests. 2000-12-19 02:12:45 +00:00
Alexandre Julliard 0b6a79c961 Converted enum_key_value request to the new request mechanism. 2000-12-15 20:57:00 +00:00
Dimitrie O. Paun 0b7a7bbc06 Include config.h in files that test for constants defined in it. 2000-11-25 01:31:17 +00:00
Alexandre Julliard 914406f854 Moved LDT handling to libwine.so. Changed the interface to use the
exported LDT_ENTRY structure.
2000-11-14 01:54:49 +00:00
Mike McCormack 1eac1911c7 - created server object for handling async i/o
- implemented WaitCommEvent with the EV_RXCHAR flag
- implemented GetOverlappedResult
2000-11-13 19:27:21 +00:00
Alexandre Julliard 57f05e1913 Converted a few more server requests to the new mechanism. 2000-10-15 00:40:25 +00:00
Alexandre Julliard 454355ece1 Convert NtQueryKey and NtEnumerateKey to the new request mechanism.
Fixed a few bugs.
2000-10-02 03:46:58 +00:00
Alexandre Julliard bcf393a5e5 Converted some of the registry server requests to the new request
mechanism.
2000-10-01 01:44:50 +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
Mike McCormack 654fcc721b Implemented SetCommMask, SetCommTimeouts, GetCommMask, GetCommTimeouts. 2000-09-16 20:55:12 +00:00
Mike McCormack 44b5bf5998 Added serial port object to the server. 2000-09-07 18:39:51 +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 8611353053 Added the data structures and macros that will be needed to support
reentrant server requests.
2000-08-29 03:54:30 +00:00
Alexandre Julliard ea1afcef49 Added APC support in waitable timers. 2000-08-22 20:08:37 +00:00
Alexandre Julliard c19e1a7e19 Implemented SEC_IMAGE mappings and shared PE sections (with the help
of Peter Ganten).
2000-08-14 20:20:01 +00:00
Alexandre Julliard a37dec0c7e Pass the main exe name in the CREATE_PROCESS debug event. 2000-06-08 00:57:24 +00:00
Turchanov Sergei 43a27e3696 Implemented local atoms in the server. 2000-05-30 20:32:06 +00:00
Alexandre Julliard c5e433a3a6 Moved idle event handling to the server. 2000-05-30 19:48:18 +00:00
Alexandre Julliard a01004d828 Added support for registry values larger than the server buffer.
When loading a registry file, automatically determine overlap between
key name and file contents based on the first key name.
Removed v1 saving code.
Save USER\.Default separately into ~/.wine/userdef.reg.
2000-05-14 22:57:57 +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 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 07d8446918 Implemented thread and (partial) module snapshots, based on the work
of Andreas Mohr <amohr@student.ei.uni-stuttgart.de>.
2000-04-16 19:45:05 +00:00
Alexandre Julliard c970904c2c Save the registry on server exit without client intervention.
Removed "alt" registry files since we now have symlinks and
WINEPREFIX to replace them.
2000-04-16 17:21:13 +00:00
Alexandre Julliard 6a72dc52bd Load done event now created by the server. 2000-04-14 13:42:00 +00:00
Alexandre Julliard ef88637f5b Made request tracing more robust against bogus lengths. 2000-04-04 19:33:27 +00:00
Ove Kaaven cb98a6ed7a Handle POLLHUP better (delay FD_CLOSE notification until all data has
been read). Made WSAEnumNetworkEvents atomic. Convert socket event
error codes properly. Made accept()-ed sockets inherit the listening
socket's WSAAsyncSelect().
2000-03-26 18:21:16 +00:00
Francois Gouget 6d77d3a1df Use min/max instead of MIN/MAX. 2000-03-25 21:44:35 +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 ea0d028a0b Added specific routines for OUTPUT_DEBUG_STRING and EXCEPTION debug events.
Generate a breakpoint event on process attach.
Misc cleanups in request handling.
2000-03-10 22:16:10 +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 5fb54566d2 Added server protocol version check. 2000-03-08 22:01:02 +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
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
Alexandre Julliard b849d79104 Moved global atoms to the server (based on the work of Sergei
Turchanov <turchanov@otvprim.ru>).
2000-02-13 13:56:13 +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
Alexandre Julliard cb1fc735f0 Changed the server to return STATUS_* error codes. 2000-01-24 21:58:06 +00:00
Alexandre Julliard 3e2517caa7 Added Get/SetThreadContext support through the server. 2000-01-20 18:59:03 +00:00
Juergen Schmied 5d0ae2dcd9 - removed copying of HKEY_USERS to HKEY_CURRENT_USER
- HKEY_CURRENT_USER is now subkey of HKEY_USERS
- changed query_key_info_request to return the key name too (NtQueryKey needs this)
- the rootkeys (MACHINE and USER) do have names
2000-01-09 21:07:01 +00:00
Alexandre Julliard 9de03f4f6a Made sleep_on usable from all requests. 2000-01-04 02:23:38 +00:00
Alexandre Julliard 1dca5e24c7 Moved poll handling to the generic part of the server objects.
Fixed busy waiting on POLLERR events.
Merged struct client into struct thread.
2000-01-01 00:56:27 +00:00
Alexandre Julliard ad47a30f5e Implemented waitable timers. 1999-11-29 01:58:35 +00:00
Alexandre Julliard d16319ce22 Store all object names as Unicode in the server. 1999-11-25 21:30:24 +00:00
Alexandre Julliard 705686e24e Added wine.conf option for new format registry files.
Added optional periodic saving of the registry.
1999-11-24 19:34:32 +00:00
Alexandre Julliard d7e85d6631 Added registry support to the server. 1999-11-23 19:39:11 +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
Ove Kaaven 019211f864 Added socket interface to wineserver. 1999-10-13 16:05:37 +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
Alexandre Julliard 5bc78089db Made server communication faster by using a shared memory block.
A few other optimizations in request processing in the server.
Moved automatically generated request definitions to server.h and
removed include/server/request.h.
1999-06-22 17:26:53 +00:00
Alexandre Julliard 039aa42373 Return console handles in alloc_console request.
Fixed read_console_input parameters to conform to the reply structure
declaration.
1999-06-11 18:31:22 +00:00
Alexandre Julliard d2b7a0ba65 Added support for dumping variable-size data of server replies.
Added cmd_line and cmd_show in new_process request.
1999-05-24 12:33:10 +00:00
Alexandre Julliard e712e077bc Added debug events support. 1999-05-23 19:53:30 +00:00
Alexandre Julliard e29a001a85 Added TEB in init_thread request. 1999-05-16 16:51:28 +00:00