Commit Graph

317 Commits

Author SHA1 Message Date
Eric Pouech b09582a890 Implemented kernel32 process affinity handling on top on ntdll. 2005-09-27 10:52:10 +00:00
Eric Pouech e21aa6a184 - now passing access rights when creating a named pipe in NTDLL
- reimplemented Kernel32.CreatePipe purely on top of NTDLL APIs
- anonymous pipe handles should have the SYNCHRONIZE bit set
2005-09-26 11:02:45 +00:00
Ivan Leo Puoti f0db7ab06b Added FSCTL_PIPE_LISTEN support. 2005-09-06 14:09:42 +00:00
Alexandre Julliard f62f6e8fe1 Don't cache file descriptors open on removable devices. 2005-08-24 18:33:50 +00:00
Alexandre Julliard 38502f70eb Added a separate set_handle_cached_fd request instead of abusing
set_handle_info for that.
2005-08-23 18:43:50 +00:00
Alexandre Julliard 964815bc42 Added an unmount_device request that invalidates all file descriptors
open on a given Unix device.
2005-08-08 15:11:03 +00:00
Alexandre Julliard 830d1edb9d Automatically generate the list of error names in make_requests. 2005-07-29 14:49:05 +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
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
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 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 8c518808b8 Put in place the basic infrastructure to allow supporting multiple
desktop windows.
2005-07-08 11:37:40 +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
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 dacc3dbfa5 Fix size used to validate the sids in aces. 2005-06-14 19:15:58 +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
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
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
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 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
Mike McCormack abe70f7648 Implemented GetLastInputInfo. 2005-04-28 12:04:14 +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
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
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 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 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 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 99615021fb Properly cope with get_message being called recursively while
processing a hardware message.
2005-03-10 11:52:25 +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
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
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
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
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
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
Hans Leidekker 719a789792 Fix signed/unsigned comparison warnings. 2004-09-22 02:46:38 +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 6a27b48895 Fd type is no longer used, get rid of it. 2004-08-18 00:04:58 +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
Alexandre Julliard 618a7e5813 Added support for window regions in the server. 2004-06-29 03:53:25 +00:00
Alexandre Julliard e8d86b7cd4 Moved visible region calculation to the server. 2004-06-23 20:44:58 +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 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 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 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 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 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
Uwe Bonnes 9ffce00940 Pass inherit handle flag properly for CreateNamedPipe. 2004-02-24 01:06:30 +00:00
Mike Hearn 43cb03be3a Implemented RegFlushKey and NtFlushKey. 2004-01-03 00:38:30 +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 97903d260b Added support for inter-process GetWindowLong on the window extra
bytes.
2003-11-26 22:15:41 +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 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
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
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
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 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