Commit Graph

931 Commits

Author SHA1 Message Date
Alexandre Julliard
830d1edb9d Automatically generate the list of error names in make_requests. 2005-07-29 14:49:05 +00:00
Alexandre Julliard
b6c7677778 Removed a no longer used variable. 2005-07-29 14:41:40 +00:00
Alexandre Julliard
f895ad180d Fixed a couple of error codes. 2005-07-29 14:41:14 +00:00
Alexandre Julliard
c132542470 Renamed fd to unix_fd in the closed_fd structure to make the code a
bit clearer.
2005-07-28 10:48:57 +00:00
Alexandre Julliard
8197e0b07b Create the desktop class when needed without requiring a client
request.
2005-07-19 19:45:48 +00:00
Robert Shearman
91eaea53ae - Change the default user SID to match what was previously returned by
NtQueryInformationToken.
- Implement TokenUser for NtQueryInformationToken.
- Add a function for getting the user's registry path from a SID.
2005-07-18 13:22:55 +00:00
Robert Shearman
37773dda84 Make mailslots use as much of the default async fd implementation as
possible.
2005-07-14 12:18:05 +00:00
Alexandre Julliard
9ad5628639 Moved the server start time to the init_thread request and got rid of
the init_process request (based on a patch by Felix Nawothnig).
2005-07-14 10:32:46 +00:00
Alexandre Julliard
11ad6a0ac4 Return the startup info size in the init_thread request, and allocate
the process parameters structure in ntdll instead of kernel.
2005-07-13 19:43:35 +00:00
Robert Shearman
fbf0ea9f18 Store the default DACL in the token. 2005-07-13 19:31:27 +00:00
Alexandre Julliard
4391be583e Get rid of the boot_done request. 2005-07-13 14:20:13 +00:00
Alexandre Julliard
0424f38169 Already initialize the process in the first init_thread request
instead of waiting for the init_process request.
2005-07-13 12:12:43 +00:00
Alexandre Julliard
c976db1a03 Avoid potential crashes when there is no handle table. 2005-07-13 12:09:49 +00:00
Alexandre Julliard
01caa5e645 Moved the fields that depends on startup info from the init_process
request to get_startup_info.
2005-07-12 20:27:09 +00:00
Alexandre Julliard
6aa0cc5e3c Load the HKEY_CURRENT_USER branch at server startup too. 2005-07-11 20:44:59 +00:00
Alexandre Julliard
4a40b2eefb Store the global hooks table in the desktop object. 2005-07-11 18:05:50 +00:00
Alexandre Julliard
5ad90c0f37 Tie windows and thread input structures to a specific desktop.
Support multiple desktop windows (one per desktop object).
Use the window desktop to find the window station to use for property
atoms.
2005-07-11 13:30:23 +00:00
Alexandre Julliard
499e343d9f Export the winstation and desktop structures to avoid having to write
too many accessor functions.
2005-07-11 10:55:53 +00:00
Alexandre Julliard
c3ac57dd86 Explicitly pass the winstation to the atom functions so that they can
be used even when current is not set.
2005-07-08 14:23:27 +00:00
Alexandre Julliard
8c518808b8 Put in place the basic infrastructure to allow supporting multiple
desktop windows.
2005-07-08 11:37:40 +00:00
Alexandre Julliard
bb82cbb90b Convert the shared mapping list to a standard list. 2005-07-07 12:04:55 +00:00
Dmitry Timoshkov
86af38c8ca Make IsWindowUnicode work in the case when window belongs to another
process.
2005-07-07 12:02:31 +00:00
Alexandre Julliard
248f4b29fe Store the global atom table in the process window station. 2005-07-07 11:29:23 +00:00
Vitaliy Margolen
b2e74c3047 Load all dll sections no matter what attributes say. 2005-07-02 10:50:42 +00:00
Alexandre Julliard
112228dfe3 Don't bother loading the config file anymore. 2005-07-01 19:26:07 +00:00
Alexandre Julliard
45128bdcdd Make the clipboard information local to the process window station. 2005-06-29 20:13:36 +00:00
Alexandre Julliard
36b85d02f6 Clear the process handle table before releasing it to avoid potential
problems with destructors trying to access handles.
2005-06-29 19:29:15 +00:00
Alexandre Julliard
92fec7b67a Keep track of the windows and hooks used by a thread to properly
refuse to change the thread desktop when it's in use.
2005-06-28 19:37:52 +00:00
Mike McCormack
390bc5f52f Don't include winbase.h when it's not necessary. 2005-06-21 09:46:15 +00:00
Robert Shearman
4bba21643c Add support for impersonating a token. 2005-06-20 13:18:38 +00:00
Mike McCormack
66e5ce3066 Remove unnecessary includes. 2005-06-20 10:35:36 +00:00
Robert Shearman
8cb3f92e53 - All versions of Windows ignore the access rights of the passed in
parent handle to RegCreateKey(Ex).
- Add a test that shows this.
2005-06-16 20:34:34 +00:00
Alexandre Julliard
5f22e7caf6 Remove the process locks in process_killed, not process_destroy. 2005-06-14 19:23:56 +00:00
Alexandre Julliard
0901b23206 Call the close_handle notification for all objects when releasing a
handle table.
2005-06-14 19:16:56 +00:00
Robert Shearman
dacc3dbfa5 Fix size used to validate the sids in aces. 2005-06-14 19:15:58 +00:00
Robert Shearman
f95ef09b8e Add TokenType attribute to specify whether the token is a primary or
impersonation token.
2005-06-14 18:10:04 +00:00
Mike McCormack
cdcb203691 Call remove_process_locks when a process ends, fix declarations. 2005-06-14 11:40:40 +00:00
Robert Shearman
3795709344 Change code style of form "if( x )" to "if (x)" for consistency. 2005-06-10 19:54:46 +00:00
Alexandre Julliard
9b3b7caf2d Store the process along with the key handle in notifications. 2005-06-09 20:36:08 +00:00
Alexandre Julliard
b9b1ea9c9f Added a close_handle method to the object operations, and use it to
implement registry notifications and the strange behavior of
CloseHandle on winstation/desktop handles.
2005-06-09 15:39:52 +00:00
Alexandre Julliard
78a3e63377 The desktop of a new thread should be set from the process initial
desktop, not from the parent thread.
Fixed a couple of bugs in the desktop name handling.
2005-06-09 12:07:12 +00:00
Robert Shearman
9b82644d00 - Avoid evil signed bitfields.
- Fix bug with using wrong revision in security_sid_alloc.
- Add all builtin groups present in the Administrator token on Windows
  to the default token.
2005-06-09 09:47:28 +00:00
Robert Shearman
d681022d68 Fix a regression in the performance of named pipes by only making the
fd non-blocking when overlapped I/O is requested for the fd (reported
by Ivan Leo Puoti).
2005-06-09 09:46:55 +00:00
Mike McCormack
c61580133d Include user.h in the new winstation.c to avoid a warning from
-Wmissing-declarations.
2005-06-09 09:43:54 +00:00
Robert Shearman
e51dd36453 Implement overlapped I/O with named pipes. 2005-06-08 19:11:46 +00:00
Alexandre Julliard
1bf96e09a9 Beginnings of support for window stations and desktops. 2005-06-08 18:44:50 +00:00
Robert Shearman
d6a4e34a60 - Add a default asynchronous I/O implementation.
- Make file objects use it.
2005-06-07 20:09:01 +00:00
Alexandre Julliard
db412aaf60 Added a from_child parameter to the get_update_region request to allow
restarting the search from a given child, in order to avoid looping
forever on windows that don't repaint correctly.
2005-05-31 13:37:16 +00:00
Alexandre Julliard
50dc5a30e1 Crop the update region to the new window rectangle when resizing a
window.
2005-05-26 12:28:07 +00:00
Robert Shearman
c516571481 - Use NULL instead of 0 for all non-handle pointers.
- Fix non-ANSI function declarations.
- Make a function static.
2005-05-25 18:41:09 +00:00
Robert Shearman
616b293e1d - Print commas between ACE's.
- Dump access masks from all ACE's.
2005-05-25 09:54:05 +00:00
Robert Shearman
4ad93416a8 Implement NtAccessCheck. 2005-05-24 12:32:18 +00:00
Robert Shearman
7bff35428b - Add new server type "struct security_descriptor".
- Add tracing for this new type.
2005-05-23 16:33:00 +00:00
Rob Shearman
b4b7f05dc3 Fix several memory leaks. 2005-05-23 09:53:06 +00:00
Robert Shearman
2a782c65bd Add user attribute to token objects. 2005-05-16 17:52:46 +00:00
Alexandre Julliard
110c8dc54a Fixed a number of atom test failures. 2005-05-14 11:11:21 +00:00
Alexandre Julliard
55d449e476 Fixed another case where a mouse message could get assigned to a
different thread input.
2005-05-14 11:08:05 +00:00
Alexandre Julliard
90b48e93a3 Only set the new window of a hardware message if the window belongs to
the same thread input, otherwise just drop the message.
2005-05-13 14:00:19 +00:00
Alexandre Julliard
9e73cdde39 Allow passing a string to the window property server requests instead
of an atom to avoid redundant server round-trips.
2005-05-11 19:01:10 +00:00
Alexandre Julliard
4bef6770b6 Changed atom handling to use counted strings instead of
null-terminated ones, avoiding the need for a temporary buffer.
2005-05-11 18:25:27 +00:00
Alexandre Julliard
63342353bc Store a bitmap of active hooks on the client side to try to avoid
server calls for hooks that are not set.
2005-05-11 13:03:15 +00:00
Eric Pouech
e6267369b2 - changed ATOM support in wineserver to match NTDLL needs
- adapted accordingly kernel32 atom support
2005-05-10 15:15:50 +00:00
Michael Stefaniuc
d40517cb18 Change the type of 1 bit wide bitfields to unsigned. 2005-05-09 09:26:28 +00:00
Eric Pouech
f479eef986 Fixed a wrong ops when creating named pipe client. 2005-05-09 09:25:45 +00:00
Alexandre Julliard
90af05f060 Treat 0xffff the same as 0 for the handle generation field to avoid
sign extension problems.
2005-05-07 15:03:00 +00:00
Robert Lunnon
43e4139db2 Include <sys/filio.h> on platforms that support it. 2005-05-07 12:14:18 +00:00
Robert Shearman
b3957e3004 - Fix access rights for RegOpenKeyEx and RegCreateKeyEx calls.
- Add privilege checks for RegLoadKey, RegUnloadKey & RegSaveKey
  calls.
2005-05-05 16:57:55 +00:00
Mike McCormack
abe70f7648 Implemented GetLastInputInfo. 2005-04-28 12:04:14 +00:00
Alexandre Julliard
d70a253f40 Make sure a thread has a queue as soon as it creates a window. 2005-04-26 14:31:33 +00:00
Mike McCormack
f92fff66a2 Implemented NtSignalAndWaitForSingleObject. 2005-04-24 17:35:52 +00:00
Robert Shearman
d2ea92d14e - Clean up well-known privileges.
- Implement checking tokens for privileges in the server.
- Implement NtPrivilegeCheck.
2005-04-22 21:17:15 +00:00
Alexandre Julliard
3e2f2a5265 Allow nested hardware message processing by storing a unique id in
every message and using it to manage the current queue position.
Better filtering of hardware messages to avoid returning messages that
have no chance to match the filter.
2005-04-20 13:03:59 +00:00
Alexandre Julliard
27f0f8001e Load system.reg and userdef.reg at server init time. 2005-04-20 12:57:53 +00:00
Alexandre Julliard
a4334a6b95 Cleaned up handling of 64-bit file sizes. 2005-04-19 11:59:13 +00:00
Eric Pouech
0a9f98b9bd Removed the no longer user APC_ASYNC kind of APC. 2005-04-18 15:38:44 +00:00
Eric Pouech
5a2591d96d - moved named pipe creation to ntdll
- server now handles the named pipe flags as the NTDLL values (not the
  KERNEL32 ones)
- named pipes in server now use the async IO mechanism for
  connect/wait ops
2005-04-18 14:57:04 +00:00
Mike McCormack
d6fdac2676 Calculate the size of the next mailslot message correctly. 2005-04-11 16:11:32 +00:00
Raphael Junqueira
962a5e7742 Fix potential region leak. 2005-04-11 12:54:53 +00:00
Alexandre Julliard
bc75f2f6c9 Return the coordinates information needed to setup the DC parameters
in the get_visible_region request instead of requiring the client to
compute it again.
2005-03-31 15:36:57 +00:00
Mike McCormack
2ab6a775bd Implement mailslots. 2005-03-30 19:02:15 +00:00
Alexandre Julliard
eea706948a The update region passed in WM_NCPAINT and the clipping region passed
to GetDCEx have to be in screen coordinates.
2005-03-30 17:11:46 +00:00
Eric Pouech
7001d6ed34 Clean-up async IO internal functions. 2005-03-29 11:40:10 +00:00
James Hawkins
580ded65e7 - Implement NtLoadKey.
- Forward RegLoadKey to NtLoadKey.
2005-03-29 11:38:58 +00:00
Alexandre Julliard
4d32a475a8 Replace the link_window request by a set_parent request since that is
all link_window is used for at this point.
Get rid of the WIN_LinkWindow/UnlinkWindow functions.
2005-03-25 10:38:56 +00:00
Alexandre Julliard
cb7aa8753c Added support for xbuttons. 2005-03-24 19:16:54 +00:00
Alexandre Julliard
0bc8377bc2 Create a new server request for accepting hardware messages instead of
abusing reply_message.
Allow passing the determined window for a hardware message back to the
server to have it redispatch the message to the correct thread.
2005-03-23 10:33:17 +00:00
Alexandre Julliard
5054c79880 Try to always keep the server window Z-order in sync with the X11 one
using a heuristic based on mouse and expose events.
2005-03-21 12:37:00 +00:00
Alexandre Julliard
e3fe68926c Revert the previous change, this is not working right yet. 2005-03-17 20:51:53 +00:00
Alexandre Julliard
f75609087a Make the server know about the visible area of a window, which is the
window rect minus the caption and borders when they are handled by the
window manager.
2005-03-17 19:10:41 +00:00
Alexandre Julliard
4e47afb36f Compute the top clipping window directly on the server side. 2005-03-17 14:02:06 +00:00
Alexandre Julliard
073d5f2b79 Queue hardware messages even if we don't find a window for them the
first time around.
2005-03-16 20:06:45 +00:00
Alexandre Julliard
705909ac09 Converted the window children lists to standard lists. 2005-03-16 19:54:33 +00:00
Alexandre Julliard
cf2f14212a Avoid returning hardware messages if they have no chance to match the
filter.
2005-03-14 17:17:09 +00:00
Alexandre Julliard
dcab706fa0 Get rid of the registry saving level hack.
Make periodic saving the default behavior.
2005-03-14 11:00:43 +00:00
Alexandre Julliard
b9a9de6eb9 Clear the internal paint flag in the server before returning a
WM_PAINT message to avoid an extra server round-trip.
2005-03-10 17:19:33 +00:00
Alexandre Julliard
99615021fb Properly cope with get_message being called recursively while
processing a hardware message.
2005-03-10 11:52:25 +00:00
Peter Berg Larsen
514f432031 Tmp was not freed in case of errors in save_branch(). 2005-03-10 11:18:31 +00:00
Alexandre Julliard
1bc2caad02 Don't check children of minimized windows in get_update_region. 2005-03-09 11:49:46 +00:00
Ulrich Czekalla
5067909587 Create a thread-specific selection window to make sure we receive the
selection events in the correct thread.
2005-03-07 19:31:46 +00:00
Alexandre Julliard
d6885fe7d4 Avoid potential crash when freeing a message queue.
Properly initialize newly allocated messages.
2005-03-05 10:51:35 +00:00
Steven Edwards
5727918424 Added a check for poll.h. 2005-03-04 12:38:36 +00:00
Alexandre Julliard
a9e0fb1ba6 Convert the process dll list to a standard list. 2005-03-02 10:20:09 +00:00
Alexandre Julliard
aa34768677 Convert the object wait queue to a standard list. 2005-03-01 11:49:58 +00:00
Francois Gouget
10e3d96617 Fix a race condition in create_dir(). 2005-03-01 11:00:06 +00:00
Alexandre Julliard
0502638ee1 Convert the per-process thread list to a standard list. 2005-03-01 10:56:18 +00:00
Alexandre Julliard
efdb4960a2 Converted the debug event queue to a standard list. 2005-02-26 17:45:29 +00:00
Alexandre Julliard
b2eff1ca01 Converted the global screen buffer list to a standard list. 2005-02-25 21:06:11 +00:00
Alexandre Julliard
8e3b072249 Replaced the message_list structure by a standard list. 2005-02-25 21:05:11 +00:00
Alexandre Julliard
73209eb73e Convert the global thread list to a standard list. 2005-02-25 19:33:35 +00:00
Alexandre Julliard
48c0d51dc3 Convert the global process list to a standard list. 2005-02-25 19:31:26 +00:00
Alexandre Julliard
20894e2ffb Convert the per-thread mutex list to a standard list. 2005-02-25 16:58:43 +00:00
Alexandre Julliard
b1aad5d86f Regular files are always ready for I/O, no need to poll on them. 2005-02-25 14:02:20 +00:00
Alexandre Julliard
81b6a1fbe5 Convert the APC queues to use standard lists. 2005-02-25 14:01:40 +00:00
Alexandre Julliard
68abbc86e6 Convert the key notifications list to a standard list. 2005-02-24 19:43:53 +00:00
Alexandre Julliard
dd81ac50a9 Convert async I/O queues to standard lists. 2005-02-24 17:06:31 +00:00
Alexandre Julliard
43b2826714 Removed no longer used create_region function, and directly export
create_empty_region instead.
2005-02-22 19:42:35 +00:00
Alexandre Julliard
548c973457 Allow the client rectangle to be of arbitrary size and dimensions,
regardless of the window rectangle.
2005-02-22 19:41:43 +00:00
Krzysztof Foltman
b85017223f Ensure that caret position is not reset to (0, 0) when CreateCaret is
called second time with the same window.
2005-02-18 20:02:55 +00:00
Robert Shearman
b0f02b28b9 - Implement AdjustTokenPrivileges, DuplicateTokenEx and
GetTokenInformation (for the TokenPrivileges case).
- Return STATUS_NO_TOKEN for OpenThreadToken when there is no token
  set for the thread.
2005-02-11 11:52:06 +00:00
Robert Shearman
795e9de806 Support WaitNamedPipe timeouts. 2005-02-08 12:54:23 +00:00
Robert Shearman
04995ce90d Don't overwrite last byte of the window structure as we might not have
allocated the memory for it if extrabytes was 0.
2005-02-08 12:07:48 +00:00
Dmitry Timoshkov
6dba0a7718 Add support for winevent hooks. 2005-02-03 16:40:20 +00:00
Alexandre Julliard
ae661da49c Properly compute the client area valid rects and pass them to the
server in set_window_pos to avoid invalidating areas that remain
valid.
2005-02-03 13:40:12 +00:00
Alexandre Julliard
7c1cf8f009 Fixed refcount handling (waiting clients must not increase the
refcount of the pipe).
Converted linked lists to use the standard functions.
Small cleanups.
2005-02-03 10:48:23 +00:00
Alexandre Julliard
52e5ac5e41 Make sure leaked objects are printed even if a file descriptor is
still open.
2005-02-03 10:46:15 +00:00
Alexandre Julliard
e432d54fd7 Fixed potential crash in fd_dump function. 2005-02-03 10:45:18 +00:00
Dmitry Timoshkov
ed04d36b5d Add more tests for old style hooks and winevent hooks, make them pass
under Wine.
2005-01-27 11:14:19 +00:00
Eric Pouech
4634447d6b - got rid of include/async.h
- fixed some overlapped issues in socket handling
- moved kernel32.CancelIo implementation to ntdll
2005-01-14 19:54:38 +00:00
Alexandre Julliard
56206376b8 Desktop window is repainted on WM_ERASEBKGND, it must never get a
WM_PAINT.
2005-01-11 15:15:11 +00:00
Alexandre Julliard
646ab89f0a Support mapping non page-aligned binaries for SEC_IMAGE mappings. 2005-01-04 12:04:06 +00:00
Rein Klazes
5dc91e6c08 A starting process must obey the STARTF_USESTDHANDLES flag and use the
standard io handles from the StartupInfo structure, even if it is
starting a new console.
2004-12-15 10:47:23 +00:00
Robert Shearman
7572b125b5 Implement NtQueryTimer. 2004-12-13 21:10:58 +00:00
Alexandre Julliard
5defa49979 Moved update region handling to the server. 2004-12-07 17:31:53 +00:00
Eric Pouech
294835a839 Another round of const correctness fixes. 2004-12-06 20:43:55 +00:00
Peter Chapman
505dfdefb5 Fix up several inline assembler blocks so that they produce correct
code with the -fomit-frame-pointer gcc flag.
2004-12-02 18:19:25 +00:00
Eric Pouech
44158dd690 - moved event, semaphore, mutex implementation from kernel32 to ntdll
- added mutant implementation in ntdll, and use it for mutex
  implementation in kernel32
- added access parameter on event, semaphore, timer creation in
  wineserver (as ntdll interface requires it)
- added missing definitions in include/winternl.h
2004-12-02 18:05:37 +00:00
Eric Pouech
0a258964c2 Const correctness fixes. 2004-11-30 21:38:57 +00:00
Alexandre Julliard
ff986a5a93 Converted the timer list to use standard list functions.
Allocate a timer id when the window is 0 instead of relying on the
client to do it.
Allow setting timers on windows belonging to other threads (found by
Mike McCormack).
2004-11-29 18:08:18 +00:00
Dmitry Timoshkov
93a4e1eed3 Take into account window visibility when searching for a target for a
hardware mouse message.
2004-10-27 21:55:00 +00:00
Alexandre Julliard
085ef06bd5 Added is_window_visible function. 2004-10-27 21:54:41 +00:00
Alexandre Julliard
626aa3366f Added fallback syscalls for epoll functions. 2004-10-27 01:03:30 +00:00
Bill Medland
ec39d65540 Added a version option to the wineserver. 2004-10-19 03:57:41 +00:00
Vincent Béron
1d9df9f9c0 Create the necessary functions for wineserver contexts for Alpha. 2004-10-14 03:05:09 +00:00
Alexandre Julliard
969f57c24a Added support for epoll() as an alternative to poll() (based on the
work of Shachar Shemesh and Mike McCormack).
2004-09-23 04:48:24 +00:00
Hans Leidekker
719a789792 Fix signed/unsigned comparison warnings. 2004-09-22 02:46:38 +00:00
Alexandre Julliard
4949a717c4 Moved timeout processing to a separate function. 2004-09-20 19:14:35 +00:00
Alexandre Julliard
807fe07417 Don't bother to return partial region data in get_window_region and
get_visible_region, return STATUS_BUFFER_OVERFLOW instead.
2004-09-17 18:20:11 +00:00
Alexandre Julliard
17c775f13c Take care to not close the file handle if there are outstanding locks
and the directory options don't match.
2004-09-09 00:28:36 +00:00
Alexandre Julliard
15e12daf03 Converted the timeout list to use the standard list functions. 2004-09-08 04:17:31 +00:00
Alexandre Julliard
5e128dd470 Added xor_region, fixed rect_in_region. 2004-09-08 01:34:22 +00:00
Eric Pouech
440ad8ccf2 - ctrl-c enabling flag is now inherited
- fixed console-related fields in RTL_USER_PROCESS_PARAMETERS
- various clean-up in kernel32.SetConsoleCtrlHandler
- only send a console event once to a process and not to all the
  process' threads
2004-09-08 01:25:05 +00:00
Alexandre Julliard
0a6af13982 Make sure to run through the poll loop once before processing newly
added timers (reported by Mike McCormack).
2004-09-07 23:28:14 +00:00
Alexandre Julliard
edc90a9f9c Added rect_in_region function. 2004-09-01 22:49:14 +00:00
Ulrich Czekalla
342adc93ef The clipboard owner can be set by the thread that has the clipboard
open.
2004-08-23 17:57:03 +00:00
Alexandre Julliard
6a27b48895 Fd type is no longer used, get rid of it. 2004-08-18 00:04:58 +00:00
Eric Pouech
1ffddb4d0c - better support for non-blocking COMM and socket read/writes:
+ added necessary semantics to fd flags
  + no longer uses fd type (but fd flags) read/write semantic behavior
- fixed socket code to use the proper manifest constants
- fixes for kernel32.GetOverlappedResult without hEvent set
- in ntdll.Nt{Read|Write}File
  + always reset the event
  + added support for longlong offsets
  + better object disposal in error handling code paths
2004-08-17 23:37:55 +00:00
Alexandre Julliard
4616dcb9a7 Moved the WindowFromPoint functionality to the server so that we can
properly take into account the window region.
2004-07-20 22:17:38 +00:00
Alexandre Julliard
c4ec2108b1 Pass the environment for a child process through the server instead of
relying on the Unix environment.
2004-07-16 03:54:35 +00:00
Mike McCormack
99a6efa1af Fix a double free in the named pipe code. 2004-07-15 18:59:58 +00:00
Alexandre Julliard
3365eb7a2d get_visible_region: do not clip out siblings of the top-level window. 2004-07-06 23:54:49 +00:00
Mike McCormack
ea782b60d6 Translate ENODEV and ENXIO error codes to NT status codes. 2004-07-06 19:42:09 +00:00
Alexandre Julliard
618a7e5813 Added support for window regions in the server. 2004-06-29 03:53:25 +00:00
Dmitry Timoshkov
b3569e7015 Add a test case for clipboard functionality and fix some bugs revealed
by it.
2004-06-25 02:55:37 +00:00
Alexandre Julliard
e8d86b7cd4 Moved visible region calculation to the server. 2004-06-23 20:44:58 +00:00
Alexandre Julliard
15ca8209d6 Properly reset msg_thread when releasing the thread input structure. 2004-06-17 20:00:25 +00:00
Eric Pouech
b0fd2ade62 - Added ProcessBasicInformation class to ntdll.NtQueryInformationProcess.
- Make use of it in kernel32.
2004-06-14 17:02:00 +00:00
Alexandre Julliard
ed8a41c7b5 Only allocate even-numbered window handles, MS Project depends on that
(found by Dmitry Timoshkov).
2004-05-28 19:35:37 +00:00
Alexandre Julliard
60287d0ac2 Make sure we don't truncate the file on open before we have checked
the sharing modes (thanks to Dmitry Timoshkov for the test case).
2004-05-22 03:15:04 +00:00
Alexandre Julliard
8c29b5f0cc Removed the no longer used SMB file I/O support, we can't do reliable
file I/O in user space anyway.
2004-05-14 22:24:48 +00:00
Alexandre Julliard
5b23efc3a2 Make sure to save the registry files even if we failed to load them. 2004-05-14 00:45:11 +00:00
Alexandre Julliard
c07ce0571e Moved loading of the home registry files to the server, there's no
real need to make these configurable.
2004-05-07 04:13:21 +00:00
Alexandre Julliard
7e9757c61d Removed handling of special root keys, this is done by the client now. 2004-05-06 23:42:04 +00:00
Alexandre Julliard
72f87b8c06 Use pread/pwrite everywhere to avoid changing the file position while
the client is using it.
Get rid of the no longer used truncate_file request.
2004-05-01 02:50:06 +00:00
Alexandre Julliard
58447bcd09 Avoid autodetecting the prefix when loading the config file since the
first key may be named 'wine'.
2004-04-30 18:35:13 +00:00
Alexandre Julliard
ad9b799324 Reimplemented CreateDirectoryW and RemoveDirectoryW using ntdll
functions.
2004-04-27 02:27:09 +00:00
Alexandre Julliard
716878c5b1 Fixed a number of NT status values to be closer to NT behavior. 2004-04-16 23:32:40 +00:00
Alexandre Julliard
dfcfc98ed0 RtlSetCurrentDirectory_U: store a handle to the current directory
along with its name.
2004-04-16 05:00:46 +00:00
Alexandre Julliard
684b65cd52 Added support for FILE_DIRECTORY_FILE and FILE_NON_DIRECTORY_FILE open
options.
2004-04-16 04:31:35 +00:00
Filip Navara
2392a36370 Get rid of non-standard ERROR_UNKNOWN value. 2004-04-12 23:15:11 +00:00
Alexandre Julliard
18c08d307a Removed the get_file_info request. 2004-04-08 19:09:04 +00:00
Alexandre Julliard
db4517010b Handle the set_file_pointer request on the client side. 2004-04-07 22:02:09 +00:00
Alexandre Julliard
49b2f6d964 Get rid of the removable media handling in the server. 2004-04-06 23:41:01 +00:00
Alexandre Julliard
670711ef25 Handle file mappings on removable media entirely inside ntdll. 2004-04-06 23:13:47 +00:00
Alexandre Julliard
9ff78729fa Moved FILE_DELETE_ON_CLOSE support to the inode object so that we
really wait for the last close.
Added FILE_SHARE_DELETE support.
2004-04-02 19:50:49 +00:00
Alexandre Julliard
74bd1e47ed Check file sharing permissions based on the file inode instead of the
file name.
Added regression test for sharing permissions.
2004-03-27 20:48:42 +00:00
Alexandre Julliard
a1fe8b4f24 Use futimes() instead of utime() to implement SetFileTime, so that it
can be done on the client side.
2004-03-27 01:48:52 +00:00
Alexandre Julliard
adc0610db7 Make the standard create_file request handle serial ports too, and
remove the create_serial request.
2004-03-18 04:08:48 +00:00
Alexandre Julliard
014099caf5 Changed the create_file server request to take NtCreateFile flags
instead of CreateFileW ones (based on a patch by Eric Pouech).
2004-03-12 01:56:49 +00:00
Alexandre Julliard
db692c8f39 Open a real file handle for drive devices, and get rid of the server
device hacks (based on a patch by Eric Pouech).
2004-03-04 23:00:18 +00:00
Alexandre Julliard
e8a339c1d2 Portability fixes for LSB compatibility. 2004-03-01 21:32:02 +00:00
Uwe Bonnes
9ffce00940 Pass inherit handle flag properly for CreateNamedPipe. 2004-02-24 01:06:30 +00:00
Huw Davies
bdb63eca78 Add the F_NOTIFY defines if we're compiling with linux and they're not
in the system header files.
2004-02-10 20:08:24 +00:00
Alexandre Julliard
a5f816c6d3 Do a protocol error instead of crashing if the reply fd has not been
set.
2004-02-05 01:48:02 +00:00
Hans Leidekker
ff49652ef6 Improved error reporting.
Add some notification types and a test.
2004-02-05 01:45:58 +00:00
Mike McCormack
dc82769e61 Mapping a zero size file should fail. 2004-01-09 00:34:14 +00:00
Mike Hearn
43cb03be3a Implemented RegFlushKey and NtFlushKey. 2004-01-03 00:38:30 +00:00
Wim Lewis
99a01c03d3 EOVERFLOW does not exist on OpenBSD. 2004-01-02 20:11:35 +00:00
Alexandre Julliard
bd13ab8d78 Store a pointer to the client-side class structure in the server and
return it on create_window and destroy_class.
Only create a single instance of the desktop class for the whole
session.
Added some missing locking in the client-side class management.
2003-12-11 05:34:53 +00:00
Alexandre Julliard
bfce151ae5 Added window classes in the server, and support for inter-process
GetClassWord/Long (based on a patch by Mike McCormack).
Various fixes to the class instance handling.
2003-12-10 04:08:06 +00:00
Alexandre Julliard
08d01923e5 Print names for Win32 errors too, plus a few more status codes. 2003-12-10 02:14:23 +00:00
Alexandre Julliard
ebf1243ec1 Added support for inter-process GetWindowWord.
Do better range checking on the window extra bytes.
2003-12-10 01:34:51 +00:00
Alexandre Julliard
d5b4232a3f Added set_win32_error() for error codes that don't have an NT status
equivalent.
2003-12-10 01:12:18 +00:00
Alexandre Julliard
f3f435ffa1 Added wine_server_release_fd function to release the fd returned by
wine_server_handle_to_fd. Fixed a couple of potential fd leaks.
2003-12-01 23:01:12 +00:00
Alexandre Julliard
8eb5e68168 cbthread and cbowner don't need to be exported. 2003-11-28 23:17:56 +00:00
Alexandre Julliard
97903d260b Added support for inter-process GetWindowLong on the window extra
bytes.
2003-11-26 22:15:41 +00:00
Martin Fuchs
76adb1ff0d - Move shell window into the background.
- Add tests for Get/SetShellWindow().
2003-11-18 00:13:34 +00:00
Alexandre Julliard
3c68ab05ca Make init_thread request deal better with fd allocation errors. 2003-10-27 22:10:22 +00:00
Alexandre Julliard
f9f37beb8a Added support for the linuxthreads cancel signal as an alternative to
SIGCHLD.
2003-10-24 04:29:01 +00:00
Daniel Marmier
7832562ee6 Fixed warnings with gcc option "-Wwrite-strings". 2003-10-21 23:57:25 +00:00
Alexandre Julliard
e55d5937ac Set or clear the BeingDebugged flag in the PEB when a debugger is
attached to or detached from a process.
Don't send exception events to the server unless a debugger is
present.
2003-10-14 01:30:42 +00:00
Alexandre Julliard
af192f83b6 Store a "removable" flag instead of the full drive type in the server
file object; this way we don't need to use GetDriveTypeW in the loader
code.
Make sure we always have a valid builtin_load_info pointer.
2003-10-08 00:25:32 +00:00
Alexandre Julliard
8d174d3f47 Store the global shell, progman and taskman windows in the server
(based on a patch by Martin Fuchs).
2003-10-07 03:40:23 +00:00
Alexandre Julliard
841f898663 Converted process creation to Unicode. 2003-10-04 04:09:41 +00:00
Gerald Pfeifer
27005516a3 Cast time_t to long for printing. 2003-10-01 03:32:16 +00:00
Alexandre Julliard
c30cefb2d5 Store module names in Unicode in the server. 2003-09-30 01:04:19 +00:00
Eric Pouech
9fd54b2838 - Implemented a few information classes in NtQuerySystemInformation.
- Added handle information to (wineserver) process snapshot.
2003-09-16 01:07:21 +00:00
Alexandre Julliard
ef5f6c7fad Moved list.h to include/wine so that it can be used everywhere. 2003-09-11 20:45:17 +00:00
Alexandre Julliard
e0b5270b4a Fixed include statements to match server_protocol.h (spotted by Eric
Pouech).
2003-09-08 19:04:01 +00:00
Alexandre Julliard
62986a0107 Added a few missing stdarg.h includes. 2003-09-07 05:08:14 +00:00
Alexandre Julliard
e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard
de1990f4cf Cope with wait4 being interrupted by a signal. 2003-08-21 21:35:15 +00:00
Alexandre Julliard
9e9e3a9ce5 We need to ignore STATUS_OBJECT_TYPE_MISMATCH errors too when setting
the process console.
2003-08-19 03:46:24 +00:00
Mike McCormack
5ac945c021 Implement registry key unloading. 2003-08-19 03:08:17 +00:00
Eric Pouech
449d10fd79 Fixed regression in process creation (std handle inheritance). 2003-08-19 01:05:17 +00:00
Alexandre Julliard
039e13118e Implemented inter-thread SendMessageCallback. 2003-07-26 20:36:43 +00:00
Mike McCormack
36cd6f5dbb Added a security token object in wineserver. 2003-07-24 00:07:00 +00:00
Francois Gouget
3ca761220a Spelling fixes (s/occured/occurred/ and variants). 2003-07-15 20:53:39 +00:00
Alexandre Julliard
ca3ac8f155 Run WH_KEYBOARD_LL and WH_MOUSE_LL hooks in the context of the thread
that set the hook.
2003-07-11 21:55:58 +00:00
Alexandre Julliard
09029b2878 Implemented the SMTO_ABORTIFHUNG flag of SendMessageTimeout. 2003-07-11 04:09:42 +00:00
Alexandre Julliard
4f196ead13 Implemented the ThreadBasicInformation case for
NtQueryInformationThread.
2003-07-09 02:57:57 +00:00
Alexandre Julliard
d55e7f1e9b Store the hook table in the thread queue instead of the thread
structure, and make sure the queue is allocated when setting a hook.
2003-07-03 18:16:48 +00:00
Alexandre Julliard
b23aa94321 One more workaround for a missing NFS lock daemon. 2003-07-03 18:12:02 +00:00
Eric Pouech
f6a70969e1 - start moving a few file related functions from files/file.c to
dlls/kernel subdir (also splitting 16bit APIs in a separate file)
- implemented ntdll.Nt{Lock|Unlock}File, and made use of those for the
  kernel32 equivalent
- implemented a few information classes in NtQueryInformationFile and
  NtSetInformationFile (still lots of missing classes)
- enhanced the get_file_info server request in order to implement
  correctly NtQueryInformationFile (change time & file alloc size)
- rewrote registry loading to comply with latest changes
2003-06-24 02:32:01 +00:00
Ulrich Czekalla
b2df5f9f19 - use global atoms for the format ids
- add timeout when calling XCheckTypedWindowEvent
- fix broken IsClipboardFormatAvailable; it tried to do a trick with
  EnumClipboardFormats by making incorrect assumptions
- in X11DRV_IsClipboardFormatAvailable do a quick exit if no one owns
  the selection
- add 1 second *minimum* time lapse between XSelectionOwner calls
- sync clipboard ownership between different wine processes
- prevents apps from getting into wierd state where they thought they
  didn't own the selection but they did and as a result queried
  themselves for available selection data
2003-06-23 23:02:02 +00:00
Eric Pouech
a86a289420 In console input record queue, replace semaphore with a manual reset
event, so that we get correct behavior in synchronization handling.
2003-06-23 03:37:14 +00:00
Eric Pouech
412d37f6e6 - adapted kernel32 so that it no longer (directly) manages console
handles as wineserver handles
- console input handle object is no longer waitable (input record
  synchronisation is now implemented as a simple semaphore), and removed
  FD_TYPE_CONSOLE from fd types in wineserver
- console handles now always have their two lower bit set so one can
  distinguish a console handle from a kernel object handle
- implemented some undocumented kernel32 console related APIs
  (CloseConsoleHandle, GetConsoleInputWaitHandle, OpenConsoleW,
  VerifyConsoleIoHandle, DuplicateConsoleHandle)
- allowed a few kernel32 APIs to take console pseudo-handles
  (FlushFileBuffer, GetFileType, WaitFor*Object*)
- simplified the console inheritance at process creation
- in console tests, no longer create a console if one already exists
2003-06-21 02:07:10 +00:00
Alexandre Julliard
64a41a2842 The server also needs to cope with IMAGE_SCN_CNT_UNINITIALIZED_DATA
and IMAGE_SCN_CNT_INITIALIZED_DATA flags set together.
2003-06-21 02:03:40 +00:00
Francois Gouget
9591836ffb 'sizeof type' is best avoided as it won't always compile (e.g. 'int
main() {return sizeof int;}'). Use 'sizeof(type)' instead.
2003-06-18 19:45:22 +00:00
Alexandre Julliard
693bbd79b6 Make it possible to retrieve an inheritable handle in open_named_pipe
(spotted by Uwe Bonnes).
2003-06-14 01:31:56 +00:00
Alexandre Julliard
15566391e2 Proper support for CPPFLAGS and LDFLAGS (suggested by Todd Vierling). 2003-06-13 23:26:01 +00:00
Eric Pouech
c00a4473bd Implement anonymous pipes on top of named pipes. 2003-05-20 04:32:53 +00:00
Eric Pouech
4c591d4ef3 Implemented timer related functions in ntdll and make the kernel32
functions use them.
2003-05-20 04:00:42 +00:00
Mike McCormack
ef8b94622a - rewrite of the named pipe code
- allow NtFileFlushBuffers to wait
- allow DisconnectNamedPipe to invalidate client cached fd
- fix the pipe test now that one extra test passes
2003-05-15 04:22:45 +00:00
Pierre d'Herbemont
87c15681b2 Add support for Darwin's ptrace. 2003-05-12 03:07:45 +00:00
Alexandre Julliard
b932723a8c Ignore locking failures caused by missing NFS locking daemon.
Handle EINVAL the same way as EOVERFLOW.
2003-05-11 02:45:33 +00:00
Alexandre Julliard
22824cb0c3 Fixed typo in return value of tkill(). 2003-05-07 03:22:22 +00:00
Alexandre Julliard
fcbd0da4a2 Fixed a couple of races with exiting threads in suspend_for_ptrace(). 2003-05-06 00:21:21 +00:00
Alexandre Julliard
d338b49574 Removed no longer correct assertion. 2003-05-02 20:18:09 +00:00
Alexandre Julliard
77fde1378e Properly handle the wait4 syscall failure on kernels that don't
support the __WALL flag.
2003-04-26 02:14:02 +00:00
Bill Medland
3f7c3ff76e Fix for client accessing a named pipe after the server closes it. 2003-04-17 02:14:04 +00:00
Alexandre Julliard
3dddc114cf Fall back to kill() if the kernel doesn't support tkill(). 2003-04-16 23:34:05 +00:00
Yorick Hardy
3f11d48346 Fix for compiling on NetBSD. 2003-04-13 01:06:14 +00:00
Alexandre Julliard
088bcf9ca5 Implemented NtQueueApcThread, and changed the server APC interface to
always take 3 parameters.
Implemented a number of other ntdll thread functions, and use them
from the kernel ones.
2003-04-04 22:26:34 +00:00
Alexandre Julliard
462172a3d6 Added abs_time_t structure to the server protocol, and added a dump
routine for it that displays the relative timeout to make timeout
values easier to interpret.
2003-04-02 22:48:59 +00:00
Alexandre Julliard
17480acb27 Initialize the dummy char we send down the pipe to make valgrind
happy.
2003-04-02 01:44:01 +00:00
Alexandre Julliard
5537dbbf40 Replaced WINE_CHECK_STRUCT_MEMBER autoconf macro by the standard
AC_CHECK_MEMBERS. Added check for si_fd in siginfo_t.
2003-03-28 00:36:12 +00:00
Alexandre Julliard
3e588e3a57 Implemented file change notifications, based on a patch by Mike
McCormack.
2003-03-26 23:41:43 +00:00
Alexandre Julliard
9037f4bbfe Added generic signal handling mechanism based on pipes to synchronize
signals with the main poll loop.
2003-03-26 01:32:18 +00:00
Alexandre Julliard
a8497bd037 Make a distinction between the thread Unix pid and the process wide
pid for platforms that use both.
2003-03-22 21:00:09 +00:00
Alexandre Julliard
d71ba930ab Ignore fcntl failure when setting a write lock on a read only file. 2003-03-21 21:31:35 +00:00
Alexandre Julliard
2ee8b5bb13 Replaced mkstemp by mkstemps from libiberty.
Removed a couple of unnecessary portability functions.
2003-03-20 21:07:49 +00:00
Alexandre Julliard
4c9754ed00 We still need libwine here... 2003-03-19 22:44:03 +00:00
Alexandre Julliard
6a9fe36de2 Created a separate static portability library and moved some of the
libwine routines in there.
2003-03-19 22:09:16 +00:00
Alexandre Julliard
b1095da50c Fixed bug that could cause SendMessage to return too early in certain
cases.
2003-03-19 00:12:17 +00:00
Gerald Pfeifer
6dcc1af7fb Fix signature of open_fd(). 2003-03-18 18:26:44 +00:00
Alexandre Julliard
ce61349334 Implemented file locking functions (partly based on my old Corel
patch). Added a few regression tests.
2003-03-18 05:04:33 +00:00
Alexandre Julliard
7ad5be967d Added -f option to make wineserver remain in the foreground for
debugging.
Close stdin/stdout when not in the foreground (based on a patch by
Francois Gouget).
2003-03-14 04:08:42 +00:00
Alexandre Julliard
580da246f5 Added an inode object to keep track of all file descriptors open for a
given file.
Plugged a couple of potential file descriptor leaks.
2003-03-12 22:38:14 +00:00
Alexandre Julliard
baf0a064db Attaching the debugger to a running process should work again
(reported by Eric Pouech). Misc cleanups.
2003-03-11 01:48:53 +00:00
Eric Pouech
4431e416ed Fixed typo. 2003-03-10 19:05:04 +00:00
Alexandre Julliard
d04ccb8ebe Use SIGUSR1 instead of SIGSTOP to suspend threads. 2003-03-04 22:18:43 +00:00
Peter Hunnisett
a3c5ad4e77 Suspended threads should not acquire synchronization objects. 2003-02-28 21:50:47 +00:00
Alexandre Julliard
02a53c176e Added send_thread_signal() function and properly handle errors caused
by the thread having already died when we send it a signal.
Use -1 instead of 0 as invalid Unix pid value.
2003-02-25 04:17:22 +00:00
Alexandre Julliard
4378d25bd2 Avoid some redundant calls to time(NULL).
touch_key() must not be called in create_key.
2003-02-25 04:04:18 +00:00
Alexandre Julliard
77c8b1dc2b Pass the pid of the new process in the new_process request, don't
depend on the parent pid to find the startup info.
2003-02-24 20:51:50 +00:00
Eric Pouech
58711741a4 Fixed read-overflow spotted by valgrind. 2003-02-19 23:27:49 +00:00
Mike McCormack
7034e8be67 Added missing release_object. 2003-02-19 00:38:12 +00:00
Alexandre Julliard
e66207ebfc Moved all references to file descriptors out of the generic object
structure.
Changed the poll()-related routines to deal with file descriptors
instead of objects and integrated poll support into fd.c.
2003-02-19 00:33:32 +00:00
Alexandre Julliard
d0e4a76544 Make sure get_file_size uses a valid fd (spotted by Uwe Bonnes). 2003-02-17 01:50:40 +00:00
Eric Pouech
4ecc32a405 Fixed regression in process parent handling. 2003-02-14 23:31:10 +00:00
Alexandre Julliard
cf27a7fa3b Changed fd operations to take a struct fd instead of a struct object.
Removed get_file_info function from object operations.
Added get_device_id request to avoid abusing get_file_info.
2003-02-14 20:27:09 +00:00
Alexandre Julliard
8b56deb85f Removed direct references to the file descriptor, use the new fd
functions instead so that get_fd works properly.
2003-02-12 21:30:44 +00:00
Steven Edwards
037c8a1246 Porting fixes. 2003-02-11 22:27:13 +00:00
Alexandre Julliard
91befe1d64 Made process and thread ids small integers instead of pointers. 2003-02-01 01:38:40 +00:00
Alexandre Julliard
863637b158 Started moving functions that deal with Unix file descriptors to a
separate fd object. This will be needed for file locking.
2003-01-30 00:26:44 +00:00
Martin Wilck
c422dae189 Do not clear FD_WINE_CONNECTED on shutdown(). FD_WINE_CONNECTED
(currently unused) can thus be used to determine if a stream socket
was ever connected.
2003-01-28 00:24:04 +00:00
Marcus Meissner
f63e5b646a Remove errno.h from files that do not need it. 2003-01-23 22:51:04 +00:00
Eric Pouech
fa8b85aa5c Set the edition mode as a specific attribute, not an extension of the
console mode.
2003-01-09 06:01:32 +00:00
Eric Pouech
2359b57574 - no longer depend on toolhelp definitions for generating snapshots
- added get_dll_info request
2003-01-09 00:01:28 +00:00
Alexandre Julliard
8ba666f3a7 Store the keyboard state in the thread input structure on the server
side.
2003-01-08 19:56:31 +00:00
Alexandre Julliard
3783e49d3a Removed no longer used local variable (spotted by Dmitry Timoshkov). 2003-01-08 19:55:08 +00:00
Alexandre Julliard
08016dc38a Grab the thread object in case the thread terminates with pending
async requests (spotted by Andreas Mohr).
2003-01-08 19:54:19 +00:00
Alexandre Julliard
242e395bbc Store the hardware messages in the thread input structure, not in the
thread queue. Get rid of the cooked messages queue.
2003-01-08 00:27:58 +00:00
Eric Pouech
f4b298b811 - Fixed several bugs while resizing an existing screenbuffer.
- Reduced update area for some write conditions.
- Started implementing event message collapsing.
2003-01-05 01:07:34 +00:00
Dimitrie O. Paun
8b36681bad Rename __WINE__ to __WINESRC__. 2003-01-04 00:52:18 +00:00
Bill Medland
309566d925 If a .reg function is accessed through a symlink then write directly
to the file rather than replacing it with a temp file.  This preserves
ownership and permissions.
2002-12-18 05:03:51 +00:00
Alberto Massari
66da6c85e8 The handler for the server message get_next_hook was returning the
module name of the current hook, instead of the next one.
2002-12-17 21:01:01 +00:00
Alexandre Julliard
435e2e63f4 winnt.h should not be self-contained, it must depend on windef.h so
that STRICT works correctly; moved some definitions back to windef.h
where they belong, and removed a couple of definitions that don't
exist on Windows.
2002-12-10 22:56:43 +00:00
Mike McCormack
11f4b44451 Implemented registry change notifications. 2002-11-25 02:47:32 +00:00
Ryan Cumming
24f4eced42 Partially implement GetThreadTimes. 2002-11-25 01:33:38 +00:00